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


合并后,git状态显示:

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

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


当前回答

您应该重置为上一次提交。这应该是有效的:

git reset --hard HEAD^

或者甚至HEAD^^还原该还原提交。如果您不确定应该后退多少步,您可以始终提供完整的SHA参考。

如果出现问题,并且主分支没有任何本地更改,则可以重置为原始/主分支。

其他回答

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

这对我有用。。!!

您可以使用git reset命令。

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

GIT重置

使用此命令中止合并:

git merge—中止

如果您提交了合并:

git reset HEAD~1
# Make sure what you are reverting is in fact the merge files
git add .
git reset --hard

参见Git书的第4章和Linus Torvalds的原始帖子。

要撤消已推送的合并,请执行以下操作:

git revert -m 1 commit_hash

如果您再次提交分支,请务必还原还原,就像Linus所说的那样。