如何强制推送到Gitlab

时间:2019-01-08 22:23:58

标签: git gitlab git-push

git push --force gitlab master                                                                                  
Enumerating objects: 50, done.
Counting objects: 100% (50/50), done.
Delta compression using up to 8 threads
Compressing objects: 100% (29/29), done.
Writing objects: 100% (40/40), 12.22 KiB | 4.07 MiB/s, done.
Total 40 (delta 26), reused 18 (delta 11)
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To gitlab.com:xxx/yyyy.git
 ! [remote rejected]     master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@gitlab.com:xxx/yyyy.git'

我应该怎么做才能将提交提交到Gitlab?我使用了几个遥控器,其他遥控器都可以,我可以完成

git push --force some_other_remote master      

3 个答案:

答案 0 :(得分:3)

GitLab documentation指出: 默认情况下,受保护的分支执行以下四个简单的操作:

  • 它会阻止拥有维护者权限的用户以外的所有用户创建(如果尚未创建)。
  • 它可以阻止除具有允许的权限的用户之外的所有人进行推送。
  • 它阻止任何人 强行推送到分支机构。 <-----
  • 它防止任何人删除分支。

因此,您需要暂时取消保护分支。最后,将其恢复为原始状态。

为此:

  1. 导航到项目的“设置”➔“存储库”
  2. 滚动以找到“受保护的分支”部分。
  3. 取消保护您要强行推送的分支
  4. 强行推送
  5. 将所有设置恢复为项目的“设置”➔“存储库”(gitlab)

答案 1 :(得分:0)

  1. 暂时取消保护主分支。
  2. 像以前一样推动。
  3. 然后将保护恢复到分支。

答案 2 :(得分:0)

来自official documentation on dealing with Protected Branches

  1. 导航到项目的“设置”➔“存储库”
  2. 滚动以找到“受保护的分支”部分。
  3. 从“分支”下拉菜单中,选择要保护的分支,然后单击“保护”。

按照上述步骤操作,您将看到一个类似于以下内容的框。

图片来源:https://docs.gitlab.com/ee/user/project/protected_branches.html

在这里,您可以单击要强制推送到的分支的橙色取消保护按钮,即master

如果您不想浏览导航栏,也可以填写以下URL模板:

https://gitlab.com/<USERNAME>/<PROJECTNAME>/settings/repository#js-protected-branches-settings

,分别用您的特定用户名和项目名称替换<USERNAME><PROJECTNAME>

更多帮助: