我不小心在本地主分支上运行了gitmergesome_other_branch。我还没有将更改推送给origin master。如何撤消合并?


合并后,git状态显示:

# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.

我如何撤销所有这些提交?


当前回答

如果您正在合并过程中,您可以随时中止它

git merge --abort

其他回答

到了这个问题,我们也希望恢复到与原点匹配(即,在原点之前没有提交)。进一步研究发现,有一个重置命令正是针对这一点:

git重置--硬@{u}

注意:@{u}是origin/master的简写。(当然,您需要远程存储库才能实现这一点。)

我能够用一个不需要查找提交id的命令解决这个问题。

git reset --hard remotes/origin/HEAD

接受的答案对我不起作用,但这个命令实现了我所期望的结果。

暂存gitbranch-d the_local_branchgit checkout-t<远程名称>应用git存储

这对我有用。。!!

在这种情况下,您需要使用git-reset--hard<branch_name>重置分支。如果要在重新设置之前保存更改,请确保创建一个新的分支并git checkout<branch_name>。

您也可以使用git-reset--hard<commit_id>将状态重置为特定的提交。

如果已推送更改,则可以改用git-restore<branch_name>。请务必了解如何在其他场景中使用git还原和git签出。

如果分支被合并而未被推送,则下面给出的git reset命令将用于撤消合并:

git reset --merge ORIG_HEAD

例子:

git reset --merge origin/master