撤消git快进合并

时间:2013-06-11 09:54:55

标签: git git-merge fast-forward

我遇到这种情况: 在一些testBranch上工作了一段时间,我想与master同步,所以我做了 git checkout testBranch和 git merge master / testBranch

所以现在我的分支与master同步,但后来我发现我想要撤消合并,问题是合并是用快进完成的,现在我的提交历史与主提交和testBranch提交混合,我不知道知道如何在我的testBranch上合并之前恢复状态。

感谢您的帮助

2 个答案:

答案 0 :(得分:23)

git reflog show testBranch

应将快进合并显示为最后一项({0})。 在确定是这种情况后,请结帐testBranch,然后执行

git reset --keep testBranch@{1}

恢复到之前的状态。

答案 1 :(得分:4)

如果你知道你想要你的本地testBranch的修订版,它就像这样简单:

git checkout testBranch
git reset --hard <revision>

如果你有类似的变化(最老的):

<point>
<your_change_a>
<change_from_someone_else>
<your_change_b>
<testBranch>

你可以:

git checkout testBranch
git reset --hard <point>
git cherry-pick <your_change_a>
git cherry-pick <your_change_b>
相关问题