修复GitLab错误:“您不允许将代码推送到此项目上受保护的分支”;

当我在项目中拥有开发人员访问权限时,我将代码推到git时遇到了一个问题,但当我拥有主访问权限时,一切都很好。问题从何而来?如何解决呢?

错误信息:

错误:您不允许将代码推入此项目上受保护的分支 < br >…

. push some refs to
596714 次浏览

没有问题,一切都按预期进行。

在GitLab中,可以保护一些分支。默认情况下,只有维护者/所有者用户可以提交到受保护的分支(参见权限的文档)。master分支在默认情况下是受保护的——它迫使开发人员发出合并请求,在将它们集成到主代码之前由项目维护者进行验证。

你可以在项目设置中打开和关闭选定分支的保护(具体取决于GitLab版本-见下面的说明)。

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

从GitLab 9.3开始

转到项目:“设置”→“存储库”→“扩展”在“受保护的分支”

enter image description here

我不太确定这个变化是什么时候引入的,截图来自10.3版本。

现在你可以选择谁被允许合并或推入选定的分支(例如:你可以完全关闭推入master,强制所有对分支的更改都通过合并请求进行)。或者你可以点击“取消保护”来完全从分支中移除保护。

从GitLab 9.0开始

类似于GitLab 9.3,但不需要点击“展开”-所有东西都已经展开了:

进入项目:“设置”→“存储库”→向下滚动到“受保护的分支”。

enter image description here

Pre GitLab 9.0

项目:“设置”→“受保护的分支”(如果你至少是给定项目的“Master”)。

Settings→受保护分支

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

enter image description here

我的存储库也遇到了同样的问题。我是仓库的主人,但我犯了这样一个错误。

我已经保护了我的项目,然后再次重新保护,错误就消失了。

在我之前的推送和有问题的推送之间,我们升级了gitlab版本。我想是这次升级造成了这个bug。

用于GitLab企业版9.3.0

缺省情况下,主分支受保护 所以unprotect:)

1-选择你的“项目”

2-Select“库”

3-Select“分支”

4选择“项目设置”

5-在“受保护分支”中点击“展开”

6 .之后点击“取消保护”按钮

我在本地gitlab服务器的“空分支”上遇到了此错误。有人提到“你不能在空树枝上第一次推”。我尝试通过浏览器在gitlab上创建一个简单的README文件。然后一切都神奇地解决了,问题得到了解决!!我提到我是主人,分支不受保护。

上述解决方案清楚地解释了问题所在;当你无法控制回购时,提交你的代码的最好方法是创建一个原始回购的Fork,并将你的代码提交到这个新的回购中,这样以后你就可以将它推送到原始的回购中。

尝试按每个链接进行更改

https://docs.gitlab.com/ee/user/project/protected_branches.html

使项目不受维护人员或开发人员的保护,以便提交

这个问题的简单解决方案是与在gitlab中拥有所有者角色的人进行快速聊天。他可以将一个文件推为READ。Md或者类似的开头。之后,一切都将像之前一样工作。

当这个问题出现时,我正在使用Windows。

这个错误很奇怪,因为它发生在我输入用户名和密码之前。如果有一个缓存或者类似的东西呢?我在网上找到了这个在gitlab的支持论坛上回答:

我打开“控制面板=>用户帐户=>管理您的凭证=> Windows凭证” 我发现两个https://@github.com和一个是错误的用户。我删除了它,在下一个“git推送”,我被重新提示,并提供了正确的凭据,它工作! 其他注意事项-这可能发生在任何git远程

在Windows凭证中,我发现了一个旧帐户的两个GitLab条目。我删除两者,现在它工作!

面板:

enter image description here

这被认为是Gitlab中的特性。

Maintainer / Owner访问永远不能强制push默认&受保护的分支,如此文档 enter image description here < / p >

替代解决方案,使用GitLab 13.11(2021年4月)

强制推送受保护分支的选项

在Git回购中防止force push是最佳实践,但偶尔可能会在特殊情况下需要它。

为了执行force push而暂时移除分支保护可能并不总是理想的,因为它需要维护者访问,并导致分支保护的设置丢失

GitLab 13.11为受保护的分支引入了一个新的允许用力推设置,它允许允许推列表中的用户强制推送。

https://about.gitlab.com/images/13_11/code_owners_approval_new_protected_branch_v13_10.png——Force push option for protected branches

参见文档问题

当你错误消息remote: You are not allowed to push code to this project.The requested URL returned error: 403

尝试设置git用户,

要在按下代码前提示用户名,请使用

$ git config --local credential.helper ""

输入用户名和密码后,登录成功

$ git push

对我来说,在创建个人访问令牌时,选择Developer而不是Maintainer位置是一个问题。

选择Maintainer解决了这个问题。

到设置后,打开分支在git。然后允许用力推。

Allow to force push option .

我也遇到过类似的问题。然而,问题是存储库被意外归档了!您可以通过访问存储库(至少在Gitlab中)来检查,它显示了以下消息"存档项目!存储库和其他项目资源是只读的。为了向它推送,我们必须解压缩它。