修复Gilab错误:"您不能将代码推送到此项目的受保护分支"?

Fac*_*mad 295 branch git-push git-add git-commit gitlab

当我在我的项目中有开发人员访问权限时将代码推送到git时出现问题,但是当我有主访问权限时一切正常.问题出在哪里?以及如何解决它?

错误信息:

错误:您不能将代码推送到此项目的受保护分支.
...
错误:未能推送一些参考...

Hco*_*org 458

没有问题 - 一切都按预期工作.

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

您可以在项目设置中打开和关闭所选分支上的保护(完全取决于GitLab版本 - 请参阅下面的说明).

在相同的设置页面上,您还可以允许开发人员进入受保护的分支机构.启用此设置后,保护将限制为拒绝需要的操作git push --force(rebase等)

自GitLab 9.3起

转到项目:"受保护的分支"上的"设置"→"存储库"→"展开"

在此输入图像描述

我不确定何时引入此更改,截图来自10.3版本.

现在,您可以选择允许合并或推入选定分支的人员(例如:您可以完全关闭推送master,强制通过合并请求对分支进行所有更改).或者,您可以单击"取消保护"以完全删除对分支的保护.

自GitLab 9.0起

与GitLab 9.3类似,但无需单击"展开" - 所有内容都已展开:

转到项目:"设置"→"存储库"→向下滚动到"受保护的分支".

在此输入图像描述

Pre GitLab 9.0

项目:"设置"→"受保护的分支"(如果您至少是给定项目的"主").

设置→受保护的分支

然后单击"Unprotect"或"Developers can push":

在此输入图像描述

  • 我遇到了这个问题,因为我不是我的OWN项目的成员,我已经推动了这个项目...要更改它,在旅游项目中,单击齿轮,成员,搜索您的用户,给它一个角色,然后单击"添加"用户投射". (3认同)
  • 出于某种原因,我突然不得不将自己添加为我自己项目的主用户。 (2认同)

小智 22

对于GitLab企业版9.3.0

默认情况下,master分支受到保护,所以unprotect :)

1 - 选择你的"项目"

2 - 选择"存储库"

3 - 选择"分支"

4 - 选择"项目设置"

5-In"Protected Branches"点击"展开"

6 - 点击"unprotect"按钮后

  • 为了路人……请不要这样做。即使您在小型组织/公司工作,也会带来严重的安全问题 (2认同)

Von*_*onC 21

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

\n
\n

受保护分支的强制推送选项

\n

\xe2\x80\x99 是阻止force pushGit 存储库的最佳实践,但特殊情况偶尔可能需要它。

\n

暂时删除分支保护以进行操作force push可能并不总是理想的,因为它需要维护者访问权限,并导致分支保护的设置丢失

\n

GitLab 13.11为受保护分支引入了新的允许强制推送设置,允许允许推送列表中的用户强制推送。

\n

https://about.gitlab.com/images/13_11/code_owners_approval_new_protected_branch_v13_10.png -- 受保护分支的强制推送选项

\n

请参阅文档问题

\n
\n
\n

此外,GitLab 16.2(2023 年 7 月)添加了:

\n
\n

允许初始推送到受保护的分支

\n

在以前版本的 GitLab 中,当默认分支受到完全保护时,只有项目维护者和所有者才能将初始提交推送到默认分支。

\n

这会给创建新项目但无法将初始提交推送到该项目的开发人员带来问题,因为仅存在默认分支。

\n

通过初始推送后完全受保护设置,开发人员可以将初始提交推送到存储库的默认分支,但之后无法将任何提交推送到默认分支。与分支受到完全保护时类似,项目维护者始终可以推送到默认分支,但没有人可以强制推送。

\n

https://about.gitlab.com/images/16_2/govern-initial-push-protected-branch.png -- 允许初始推送到受保护的分支

\n

请参阅文档问题

\n
\n


小智 7

到git中打开分支后的设置。然后用力推动。

允许强制推送选项


rav*_*iru 5

当您出现错误消息 remote: You are not allowed to push code to this project.并且 The requested URL returned error: 403

尝试设置 git 用户,

要在推送代码之前提示用户名,请使用

$ git config --local credential.helper "" 
Run Code Online (Sandbox Code Playgroud)

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

$ git push
Run Code Online (Sandbox Code Playgroud)