使用SVN很容易反向合并提交,但如何使用Git?
答案 0 :(得分:108)
要还原合并提交,您需要使用:git revert -m <parent number>
。因此,例如,要使用编号为1的父级恢复最近的大多数合并提交,您将使用:
git revert -m 1 HEAD
要在上次提交之前恢复合并提交,您可以执行以下操作:
git revert -m 1 HEAD^
使用git show <merge commit SHA1>
查看父母,编号是他们出现的顺序,例如Merge: e4c54b3 4725ad2
git merge文档: http://schacon.github.com/git/git-merge.html
git merge讨论(令人困惑但非常详细): http://schacon.github.com/git/howto/revert-a-faulty-merge.txt
答案 1 :(得分:103)
要创建一个“撤消”过去提交更改的新提交,请使用:
$ git revert <commit>
通过重新定位然后重置,实际上也可以从过去的任意点删除提交,但是如果你已经将提交推送到另一个存储库(或其他人已经提取),你真的不想这样做来自你)。
答案 2 :(得分:4)
如果我理解正确,你就是在谈论做
svn merge -rn:n-1
退出之前的提交,在这种情况下,您可能正在寻找
git revert
答案 3 :(得分:0)
git reset --hard HEAD^
使用以上命令还原合并更改。
答案 4 :(得分:-1)
如果您不想提交,或者想稍后提交(仍然可以为您准备提交消息,您也可以编辑):
git revert -n <commit>