我的目标:
如下是我的一个分支记录,我需要抛弃红框的一次合并提交,本分支名称为T1:
操作如下:
1.打出一个回滚到之前的分支:
git checkout T1
git checkout -b tmp1 10cc9a
2.将T1打出一个撤销分支。
git checkout T1
git checkout -b tmp2
3.撤消合并的那一次提交:
git checkout tmp2
git show cf26fc #查看要撤消的合并详情
git revert -m 1 cf26fc #执行撤消
其中 -m 1 的意思是指定上图“合并提交”操作的10cc9a7ee 为主分支,抛弃197b28275。
4.将抛弃后的分支tmp2,合并到回滚到之前的分支tmp1
git checkout tmp1
git merge tmp2
现在tmp1 即是撤消那一次合并的T1分支了。
上述操作参考实现如下:
http://blog.psjay.com/posts/git-revert-merge-commit/