git从合并中删除提交

时间:2011-03-22 18:05:06

标签: git branch commit

我有以下问题...

我试图将远程分支合并到我的本地,然后将更改推送到repo ...好吧,我获取了有三个提交的远程分支,但其中一个没有完成,所以我不知道想要推送其中一个提交到repo ...当我运行git log时,它显示了这个:

commit: A1
merge: M1
    merge remote branch "remote/branch"

commit: A2 commit: A3 commit: A4

我想删除提交A2 ...我该怎么办?我正在搜索,有些人说使用git rebase或git reset,但我不确定应该使用哪一个...以防万一,我没有推动这些更改

感谢您的帮助

1 个答案:

答案 0 :(得分:10)

如果你还没有推动你的合并提交(这意味着A2还没有被推送),你可以交互式地重新设置:

git rebase -i HEAD~3

现在删除合并提交行。然后,重新排序提交,以便A2是最新完成的。完成后,分支:

git branch incompleteFeature

然后将master重置为上一次提交:

git reset --hard HEAD^

现在你可以正确地同步,并且不完整的功能将位于它自己的分支中,直到你决定在它准备好的时候合并它。

希望这会有所帮助