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


合并后,git状态显示:

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

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


当前回答

使用此命令中止合并:

git merge—中止

其他回答

奇怪的是,缺少了最简单的命令。大多数答案都是有效的,但撤销你刚才做的合并,这是一种简单而安全的方法:

git reset --merge ORIG_HEAD

引用ORIG_HEAD将指向合并之前的原始提交。

(--merge选项与合并无关。它就像git-reset--hard ORIG_HEAD,但更安全,因为它不会触及未提交的更改。)

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

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

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

您可以使用git reset命令。

git reset-将当前HEAD重置为指定状态。git重置[--混合|--soft|--hard|--merge][-q][]git-reset[-q][][-]…git重置--补丁[] [--] […]

GIT重置

如果你还没有提交,你只能使用

$ git checkout -f

它将撤消合并(以及您所做的一切)。

如果您的合并和相应的提交尚未被推送,您可以始终切换到另一个分支,删除原始分支并重新创建它。

例如,我意外地将一个开发分支合并到master中,并想撤消它。使用以下步骤:

git checkout develop
git branch -D master
git branch -t master origin/master

瞧!Master与原点处于同一阶段,您的错误合并状态将被清除。