我刚刚对我的一个功能分支(“feedback_tab”)进行了一些更改,然后检出“master”并将它们合并到那里。我实际上是想将它们合并到我的“开发”分支中。
现在,master通过17次提交领先于'origin / master'(它的远程) - 我没有推动合并(并且显然不希望)。如何将master恢复到意外合并之前的状态?我对git revert
和git reset
之间的这些东西感到困惑。
我查看了我的git日志,并没有将feedback_tab合并到master中的条目。我以为它会成为最佳入口?
有点困惑:/欢迎任何帮助!最大
答案 0 :(得分:62)
撤消未推送的合并:
git reset --merge ORIG_HEAD
如果在合并期间发生冲突,撤消合并的最佳方法是:
git merge --abort
答案 1 :(得分:35)
git reset --hard HEAD~17
带领你回到主人头前的17次提交。 git rebase -i HEAD~17
可能也会删除额外的提交。
答案 2 :(得分:12)
Undo a merge or pull
$ git pull <1>
Auto-merging nitfol
CONFLICT (content): Merge conflict in nitfol
Automatic merge failed; fix conflicts and then commit the result.
$ git reset --hard <2>
$ git pull . topic/branch <3>
Updating from 41223... to 13134...
Fast-forward
$ git reset --hard ORIG_HEAD <4>
答案 3 :(得分:4)
这个肯定会奏效!
git reset --hard HEAD~1
git init
第一个将还原您最近所做的更改(合并) 第二个将初始化回购(因此将快进到最新的原产地)
我试过
git reset --merge
但它并没有成功。