【问题标题】:remote: GitLab: You are not allowed to push code to protected branches on this project远程:GitLab:您不允许将代码推送到此项目的受保护分支
【发布时间】:2017-06-23 17:22:09
【问题描述】:

我正在尝试推送到 repo 的 master 分支,但我没有这样做,因为它受到保护。
我试图查看项目设置,但没有看到受保护分支的任何选项。我能看到的唯一选择是会员。

remote: GitLab: You are not allowed to push code to protected branches on this project.
To git@gitlab.ins.risk.regn.net:cmd/release.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@gitlab.ins.risk.regn.net:cmd/release.git'

我的仓库只有一个分支,目前还没有内容。
我确实看到了我的其他存储库的受保护分支选项,但没有看到这个特定的。
这是一个没有内容且只有默认分支的新仓库。
我有master 权限。
不幸的是,我无法以某种方式在这里上传图片。

请建议如何将代码推送到主分支。

【问题讨论】:

标签: gitlab git-push


【解决方案1】:

2018 年 12 月 17 日

1。 git push: “错误:未能将一些参考推送到”

git push -f: "远程拒绝"

2。分支处于保护状态,不能强制运行。

Gitlab - Repository - Branches

3。暂时取消分支保护。

Gitlab - Settings - Repository - Protected Branches - Unprotect

4。尝试再次推送

git push -f

5。可能会增加保护

【讨论】:

  • @Coderman 这是git仓库的权限管理,必须这样设置。
  • 当前版本的 GitLab 有一个滑块允许强制推送到当前受保护的分支。
【解决方案2】:

目前还没有内容

这意味着还没有要保护的 master 分支,因为空的 repo 没有。

"Enable/disable branch protection",您需要是 GitLab 项目的主人或所有者(您是)。

确保:

  • 你的first push is a git push -u origin master;
  • 远程 origin 确实引用了正确的 repo (git remote -v);
  • 您的本地 ssh 密钥是正确的 (ssh -T git@gitlab.ins.risk.regn.net);
  • 您是cmd 组的成员。

【讨论】:

    【解决方案3】:

    在 GitLab 中,一些分支可以受到保护。默认情况下,只有 'master' 用户可以提交到受保护的分支,并且默认情况下 master 分支受到保护。

    您可以在项目设置中打开和关闭选定分支的保护(转到项目:“设置”->“存储库”->“受保护的分支”上的“扩展”)。

    在同一设置页面上,您还可以允许开发人员推送到受保护的分支。启用此设置后,保护将仅限于拒绝需要 git push --force

    的操作

    【讨论】:

      【解决方案4】:

      这意味着您可能有一个master 分支,但它在项目设置中受到保护。见:

      how to fix: you are not allowed to push code to protected branches on this projecthttps://gitlab.com/gitlab-com/support-forum/issues/207

      为了访问项目设置和取消保护分支,您需要有足够的权限。

      【讨论】:

        【解决方案5】:

        项目:“设置”->“受保护的分支”(如果您至少是给定项目的“主人”)。

        然后点击“取消保护”或“开发者可以推送”

        【讨论】:

          【解决方案6】:

          Settings>Repo>Expand.. 为我工作 很少有分支机构可以得到保障。请记住,主分支是默认保护的。当然,master 将能够提交到受保护的分支。

          查看:https://gitlab.com/gitlab-org/gitlab-foss/-/issues/51741

          【讨论】:

            【解决方案7】:

            我遇到了类似的问题 - 一个项目的 CI/CD 管道/作业抱怨它无法从自托管 GitLab 实例上的私有存储库的受保护分支中提取代码。

            在我的例子中,我能够直接使用 git 操作存储库并提取代码,因为我在 GitLab 中拥有完全的管理权限。最后事实证明,GitLab Runner 不允许克隆存储库,因为我的用户不是项目组的直接成员。

            【讨论】:

              【解决方案8】:

              我知道它有点旧,但对我来说,远程设置了一个前缀用户,devops 进行部署,所以我不得不更改远程 url 以不使用它设置的用户名,或者你可以更改给你的。

              【讨论】:

                【解决方案9】:

                也许主分支打开了保护。需要选择开发者推送保护分支设置。

                【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2019-07-19
                • 2022-11-04
                • 2017-11-09
                • 2021-04-29
                • 1970-01-01
                • 2016-02-20
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多