我正在尝试还原错误的合并,但是两个命令的还原更改看起来都不正确。
这就是我进行合并提交的方式:
# merge master into branch:
git checkout branch
git merge master
# resolve conflicts
git commit
git push
现在我想恢复该合并:
git log b2e
commit b2e...
Merge: de9... cf4...
git revert -m 1 -n b2e
问题git status
在于它只会撤消我解决的冲突,而不是整个合并。该命令git revert -m 2 -n b2e
将撤消合并之前对分支所做的更改,这也是我不想要的。
第二个问题是:如何显示合并提交中的更改?
git show b2e # only shows the conflicts I resolved
git diff b2e de9 # does the same
git diff b2e cf4 # shows what is different between the branch and master
更新:de9
提交是正确的,并且 git diff b2e de9 确实显示了提交的内容。我感到困惑的一个原因是因为删除/保留冲突没有显示在差异中,所以我认为 git 没有向我显示更改。diff'ing to cf4
,来自 的提交master
,让我更加困惑,因为我不太明白发生了什么。没有必要回答这个问题。