当前位置:   article > 正文

remote: GitLab: You are not allowed to force push code to a protected branch on this project.

remote: gitlab: you are not allowed to force push code to a protected branch

在这里插入图片描述

问题

真实场景: 项目需求马上准备上线了,所以提前将需求版本分支合并(merge)到了主分支(master),然后打了版本 Git Tag(v1.0.1),上一个版本 Git Tag 是 v1.0.0,这个时候突然通知我说这个版本影响太大,现在用户使用频繁,为了保证稳定性,延迟到下月中旬上线。但是为了后续其他需求的开发,必须保证主分支(master)还是之前的代码(v1.0.0的代码),所以我只能回退(reset)版本了。然后就出现了回退失败的问题,下面是我执行的步骤:

git show v1.0.0    // 拿到commit 672f634aa52215
git reset --hard 672f634aa52215  // 执行回退
git push -f   // 强制推送到远端
  • 1
  • 2
  • 3

出现的错误提示:

remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To git.********.git
 ! [remote rejected] master -> master (pre-receive hook declined)
错误:无法推送一些引用到 '*************.git'
  • 1
  • 2
  • 3
  • 4

这个错误的意思,当前的分支受保护,当你强制推送的时候是无法成功的。(我还试着新建了一个新分支,新建分支是可以强制推送的,但是merge到主分支时,主分支不承认更改的内容,所以失败了,,,)

解决方法

查阅资料后,发现是 gitlab 设置了主分支保护,所以我做了下面的更改:

gitlab路径:项目/Settings/Repository/Protected Branches

在这里插入图片描述
大家看,这里对master做了分支保护。怎么解决呢?直接点击该分支旁的 Unprotect 按钮,就解除保护了,然后我又在本地主分支上,再次执行 git push -f 就成功了。

但是为了避免后续出现问题,建议重新设置主分支(master)保护。
在这里插入图片描述
大家还有什么更好的办法呢?欢迎在评论区讨论。。。

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/184568
推荐阅读
相关标签
  

闽ICP备14008679号