我不小心在本地主分支上运行了gitmergesome_other_branch。我还没有将更改推送给origin master。如何撤消合并?
合并后,git状态显示:
# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
我如何撤销所有这些提交?
我不小心在本地主分支上运行了gitmergesome_other_branch。我还没有将更改推送给origin master。如何撤消合并?
合并后,git状态显示:
# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
我如何撤销所有这些提交?
当前回答
您可以使用git reset命令。
git reset-将当前HEAD重置为指定状态。git重置[--混合|--soft|--hard|--merge][-q][]git-reset[-q][][-]…git重置--补丁[] [--] […]
GIT重置
其他回答
只需创建新的分支,然后cherry pick所需的提交。
它的保护程序和更简单的重置在上面的许多答案中都有描述
假设您的本地主机不领先于源/主机,您应该能够
git reset --hard origin/<branch-name>
因此,假设您在master上执行了此操作,那么您的本地master分支看起来应该与origin/master相同。
如果你还没有提交,你只能使用
$ git checkout -f
它将撤消合并(以及您所做的一切)。
对于较新的Git版本,如果您尚未提交合并,并且存在合并冲突,您可以简单地执行以下操作:
git merge --abort
来自man git merge:
只有在合并导致冲突后才能运行[This]。gitmerge--abort将中止合并过程并尝试重建合并前的状态。
如果您提交了合并:
git reset HEAD~1
# Make sure what you are reverting is in fact the merge files
git add .
git reset --hard