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

错误信息:

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


当前回答

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

其他回答

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

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

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

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

替代解决方案,使用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.

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

这被认为是Gitlab中的特性。

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