GitLab受保护分支撤销提交
由于组里使用GitLab来管理代码,对于一些重要分支设置了受保护分支的选项。
在某些时候由于错误提交了代码,因此需要进行回滚操作来撤回提交。
一般地,我们撤销代码都是用以下操作
$git reset --hard HEAD^
$git push -f
但是在受保护分支情况下,分支是不允许任何人强制提交代码的,否则会报错。
解决方案
方案一:暂时取消受保护分支
如果你是主程序员以上的角色,你可以临时取消分支的受保护设置,然后使用强制提交的方式来回退代码。
这种方式虽然简单粗暴,但是由于受保护分支是重要分支,强制提交的风险还是很大的,所以不是很推荐。
方案二:revert指令
在https://stackoverflow.com/questions/35958394/git-undo-commit-on-protected-branch有人提到可以使用revert指令来产生一条新的commit记录来撤销提交。
具体操作即复制需要撤销的提交记录的SHA-1,执行以下命令
git revert SHA-1
git commit ....
git push origin <branch>
执行完GitLab可以看到分支上多了一条提交记录
方案三:直接在GitLab操作
事实上,revert指令可以在Gitlab上直接操作
- 在分支详情页点击操作->撤销
- 选择还原到哪个分支
- 还原成功,会提示你输入commit信息
最后
以上仅为个人操作笔记,如有错误欢迎指正