Gitlab强制推送提示“You are not allowed to force push code to a protected branch on this project.“

场景还原:

公司上新网站,需要进行百度等平台审查,其中不能出现敏感字眼等,所以将网站中的字词问题修改了,本来的意思就是现在随便修改,之后再Gitlab上回滚即可,现在审查过了,需要进行回滚,可是回滚时强推出现了没有权限的问题,明明权限已经是master了,但还是强推不了。

强制推送命令

$ git push -u origin master -f

推送命令后出现了这样的情况

E:\xxx>git push -f origin master
Password for ‘http://xxx@git.xxx.cn’:
Total 0 (delta 0), reused 0 (delta 0)
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To http://git.xxx.cn/xxx/xxx
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to ‘http://xxx@git.xxx.cn/xxx/xxx.git’

“GitLab: You are not allowed to force push code to a protected branch on this project.”
提示没有权限强制推送

后来在网上进行一番搜索,发现了问题
在这里插入图片描述

就是这里,左边的意思是受保护的分支,受保护的分支不允许进行强制推送,解除掉受保护的分支即可,UnProtect解除保护,然后再次进行强制推送命令$ git push -u origin master -f。

推完之后再回到这里进行重新保护master分支,选择分支,点击Protect即可

在这里插入图片描述
其实这不是强推不强推的事儿,这个是对 push 的限制,加上 protect 就不能 push,去掉就能 push,和 force 与否没有一毛钱关系
只要一个分支加到 protect 中,就不能再 force push 了。此时能不能 push 是由前面的选项来决定的,选择了你的身份能 push,那就能 push;选择了能 merge,那就能 merge。

确实是因为保护分支的设置引起的。但是在idea中操作只显示推送拒绝没有显示原因,如果使用命令的话会有提示你不能强制推送。然后我找到了gitlab的保护分支设置,它的描述是如果设置了保护分支则默认不允许强制推送。

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值