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

错误信息:

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


当前回答

这被认为是Gitlab中的特性。

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

其他回答

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

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

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

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

面板:

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

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

尝试按每个链接进行更改

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

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

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

尝试设置git用户,

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

$ git config --local credential.helper "" 

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

$ git push