remote:GitLab:您不能将代码推送到此项目的受保护分支

时间:2017-02-06 17:05:29

标签: gitlab git-push

我正在努力推动回购的主分支,但我没有这样做,因为它受到保护。
我试图查看项目设置,并没有看到受保护分支的任何选项。我能看到的唯一选择是成员。

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'

我的回购只有一个分支,到目前为止没有任何内容 我确实看到了我的其他Repos的受保护的分支选项,但不是这个特定的 这是一个没有内容的新回购,只有默认分支 我获得了master的许可 不幸的是,我无法以某种方式上传图片。

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

9 个答案:

答案 0 :(得分:5)

  

到目前为止没有内容

这意味着还没有more_people = realloc(people, count * sizeof(Person)); if (!more_people) { // handle failure } else { people = more_people; } 分支可以保护,因为空仓库没有。{/ p>

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

确保:

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

答案 1 :(得分:3)

这意味着您可能拥有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

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

答案 2 :(得分:3)

12/17/2018

1。 git push:“错误:无法将某些引用推送到”

git push: error: failed to push some refs to

git push -f:“远程拒绝”

git push -f: remote rejected

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

Gitlab - Repository - Branches

Gitlab - Repository - Branches

3。暂时取消分支机构的保护。

Gitlab - Settings - Repository - Protected Branches - Unprotect

Gitlab - Settings - Repository - Protected Branches - Unprotect

4。再试一次

git push -f

git push -f

5。可能会增加保护

答案 3 :(得分:1)

设置>回购>扩展..为我工作 很少有分支机构可以得到保证。请记住,主分支是默认受保护的。当然,主服务器将能够提交到受保护的分支。

签出:https://gitlab.com/gitlab-org/gitlab-foss/-/issues/51741

答案 4 :(得分:0)

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

enter image description here

然后点击" Unprotect"或者"开发人员可以推送"

答案 5 :(得分:0)

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

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

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

的操作

答案 6 :(得分:0)

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

在我的情况下,由于我在GitLab中拥有完整的管理特权,因此我能够使用git来操作存储库并直接提取代码。最后,事实证明,由于我的用户不是项目组的直接成员,因此不允许GitLab Runner克隆存储库。

答案 7 :(得分:0)

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

答案 8 :(得分:-1)

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