当我在项目中具有开发人员访问权限时,将代码推送到git时出现问题,但是在具有主访问权限的情况下一切正常。问题出在哪里?以及如何解决?
错误信息:
错误:不允许将代码推送到该项目上受保护的分支。
...
错误:无法将某些参照推送到...
当我在项目中具有开发人员访问权限时,将代码推送到git时出现问题,但是在具有主访问权限的情况下一切正常。问题出在哪里?以及如何解决?
错误信息:
错误:不允许将代码推送到该项目上受保护的分支。
...
错误:无法将某些参照推送到...
Answers:
没问题-一切都按预期进行。
在GitLab中,可以保护某些分支。默认情况下,只有维护者/所有者用户可以提交到受保护的分支(请参阅权限docs)。master
分支默认情况下受保护-强制开发人员发出合并请求,以供项目维护人员验证,然后再将其集成到主代码中。
您可以在项目设置中打开和关闭选定分支上的保护(确切取决于GitLab版本-请参见下面的说明)。
在同一设置页面上,您还可以允许开发人员推入受保护的分支。启用此设置后,保护将仅限于拒绝要求的操作git push --force
(变基等)
转到项目:“设置”→“存储库”→“受保护分支”上的“扩展”
我不太确定何时引入此更改,屏幕截图来自10.3版。
现在,您可以选择允许哪些人合并或推送到选定的分支中(例如:您可以完全关闭推送master
,从而强制所有对分支的更改都通过合并请求进行)。或者,您可以单击“取消保护”以完全删除分支的保护。
与GitLab 9.3类似,但无需单击“展开”-所有内容均已展开:
转到项目:“设置”→“存储库”→向下滚动到“受保护的分支”。
项目:“设置”→“受保护的分支”(如果您至少是给定项目的“主”)。
然后单击“取消保护”或“开发人员可以推送”:
出现此问题时,我在Windows上。
该错误很奇怪,因为它发生在我无法输入用户名和密码之前。如果有缓存或类似的东西怎么办?我在网上对其进行了挖掘,并在gitlab的支持论坛上找到了以下答案:
我打开“控制面板=>用户帐户=>管理您的凭据=> Windows凭据”,我发现两个https://@github.com,一个是错误的用户。我删除了它,并在下一个“ git push”上再次提示我,并提供了正确的凭据,它可以正常工作!其他注意事项-任何git遥控器都可能发生这种情况。
在Windows凭据中,我找到了一个旧帐户的两个GitLab条目。我都删除了,现在可以使用了!
面板: