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

错误信息:

错误:不允许将代码推送到此项目上受保护的分支。 ... 错误:failed to push some refs to…


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

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

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

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

自从GitLab 9.3

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

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

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

自从GitLab 9.0

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

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

终极吉他9.0

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

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


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

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

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


用于GitLab企业版9.3.0

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

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条目。我删除两者,现在它工作!

面板:


这被认为是Gitlab中的特性。

维护者/所有者访问永远不能再次强制推送默认和受保护的分支,如本文档所述


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

Force push option for protected branches It’s best practice to prevent force push on Git repos, but exceptional cases may occasionally require it. Temporarily removing branch protections in order to conduct a force push may not always be ideal as it requires maintainer access, and causes the settings for branch protection to be lost. GitLab 13.11 introduces a new Allow force push setting for protected branches, which enables users in the Allowed to push list to force push. See Documentation and Issue.


当您发出远程错误消息时:不允许将代码推入此项目。和请求的URL返回错误:403

尝试设置git用户,

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

$ git config --local credential.helper "" 

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

$ git push

对我来说,在创建个人访问令牌时,选择开发人员而不是维护人员的位置是一个问题。

选择维护者解决了这个问题。


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


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


对我来说,问题是用户试图推送,但没有被邀请到项目中。我必须去项目信息>成员,并邀请成员作为开发人员,这样他们就可以访问推送。