Git:如何反向合并提交?
用SVN很容易反向合并一个提交,但如何用Git做到这一点?
要创build一个新的提交,“解除”过去提交的更改,请使用:
$ git revert <commit>
也可以通过重新绑定然后重新设置从一个任意点删除提交,但如果您已经将提交推送到另一个存储库(或者其他人已经从您提交),那么您确实不希望这样做, 。
要恢复合并提交,你需要使用:git revert -m。 因此,例如,要使用编号为1的父级恢复最近的最多合并提交,可以使用:
git revert -m 1 HEAD
要在最后一次提交之前还原合并提交,您应该这样做:
git revert -m 1 HEAD^
使用git show <merge commit SHA1>
来查看父母,编号是他们出现的顺序,例如Merge: e4c54b3 4725ad2
git合并文档: http : //schacon.github.com/git/git-merge.html
混帐合并讨论(混乱,但非常详细): http : //schacon.github.com/git/howto/revert-a-faulty-merge.txt
如果我正确地理解你,你正在谈论做一个
svn merge -rn:n-1
退出先前的提交,在这种情况下,您可能正在寻找
git revert
如果你不想提交,或者稍后想提交(提交信息仍然会为你准备,你也可以编辑):
git revert -n <commit>
git reset --hard HEAD^
使用上述命令来还原合并更改。