背景
某次,因为蛋疼的原因,不小心把不该合并的分支合到了dev或者master分支,影响到了需求上线或其他。这时候就需要撤销某次的合并了。
解决方案
方案一
1、找到最后一次提交到master分支的commit_id,即merge前的commit_id,也就是目标要回退到的commit_id。
本图为Idea 2021.3 版本查看commit_id的方式。(点开git提交历史,查看代码改动的时候,左边的剪头指的那个)
2、在当前分支,打开终端,执行命令回退
git reset --hard commit_id
。
注:执行完以后,本地为回退分支,远程扔为被改变的分支
3、从当前的分支重新拉一个分支,并将拉好的新分支推到远程(newmaster)。
git checkout -b newmaster
4、将拉好的新分支推到远程。
5、将原来的本地分支和远程的分支删除(master)。
6、将远程的newmaster分支改名为master(也就是相当于替换了一下)。
7、结束。
方案二
1、找到最后一次提交到master分支的commit_id,即merge前的commit_id,也就是目标要回退到的commit_id。
2、在当前分支,打开终端,执行命令回退
git reset --hard commit_id
。
注:执行完以后,本地为回退分支,远程仍为被改变的分支
3、将回退好的分支强推到远程。
git push origin HEAD --force
4、结束。
版权归原作者 xiaoxigua_cs 所有, 如有侵权,请联系我们删除。