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

错误信息:

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


当前回答

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

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

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

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

面板:

其他回答

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

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

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

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

自从GitLab 9.3

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

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

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

自从GitLab 9.0

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

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

终极吉他9.0

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

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

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

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

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

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

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

用于GitLab企业版9.3.0

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

1-选择你的“项目”

2-Select“库”

3-Select“分支”

4选择“项目设置”

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

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