情况描述:多次提交后,发现代码不符合需求或其他情况,但是代码也都提交到远程分支了,此时想要回滚远程分支的代码到某次提交,例如下图的提交,我想回滚到
init那次提交
首先,查看提交日志,来获取
commit id,如下图,输入命令后出现的黄色字体就是commit id
git log
接下来,将代码回滚到某次提交并提交回滚操作
git reset --hard 848688b5086315ee127882a6c20da8089de91f1d // 先 reset 到某次提交
git push -f // 接着需要强制推送代码到远程仓库
此时,如果你不是在 master 分支,就会出现文章结尾的那张回滚操作成功的图片也就回滚完成了,但如果你是在 master 等一些受保护的分支,那么你就会得到一个报错
可以看到提示的内容是:You are not allowed to force push code to a protected branch on this project. 也就是我们没有权限,因为这是一个受保护的分支,那么就要按照如下四个步骤来解除保护,这样就可以继续完成回滚操作了
![]()