git从合并中删除提交

mar*_*kos 2 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,但我不确定应该使用哪一个...以防万一,我没有推动这些更改

谢谢您的帮助

Ada*_*ruk 10

如果你还没有推动你的合并提交(这意味着A2还没有被推送)你可以交互式地进行rebase:

git rebase -i HEAD~3
Run Code Online (Sandbox Code Playgroud)

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

git branch incompleteFeature
Run Code Online (Sandbox Code Playgroud)

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

git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)

现在您可以正确同步,并且不完整的功能将位于其自己的分支中,直到您决定在以后准备好时将其合并.

希望这可以帮助