我不小心在本地主分支上运行了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 merge --abort
其他回答
您可以使用git reset命令。
git reset-将当前HEAD重置为指定状态。git重置[--混合|--soft|--hard|--merge][-q][]git-reset[-q][][-]…git重置--补丁[] [--] […]
GIT重置
如果您注意到需要在合并后立即恢复,并且在合并尝试后还没有做任何其他操作,则只需发出以下命令:git reset--hard HEAD@{1}。
本质上,如果在合并之后没有提交任何其他内容,那么合并sha将指向HEAD@{0},因此HEAD@{1}将是合并之前的前一点。
最简单的答案是奥迪尼奥-维尔蒙特给出的答案
首先执行git重置--合并ORIG_HEAD
对于那些希望在推送更改后重置的用户,请执行以下操作(因为这是第一篇关于git重置合并问题的文章)
git推原点HEAD—力
这将以这样一种方式重置,即您不会在拉动后再次获得合并的更改。
在这种情况下,您需要使用git-reset--hard<branch_name>重置分支。如果要在重新设置之前保存更改,请确保创建一个新的分支并git checkout<branch_name>。
您也可以使用git-reset--hard<commit_id>将状态重置为特定的提交。
如果已推送更改,则可以改用git-restore<branch_name>。请务必了解如何在其他场景中使用git还原和git签出。
如果没有冲突和合并完成,则:
git reset --hard HEAD~1
如果在执行合并时发生冲突,则中止将使您退出最近的合并更改:
git merge --abort
或者如果您想恢复到特定的提交id。
git reset --hard <commit-id>