撤消git merge(尚未推送)

Max*_*ams 41 git merge revert

我刚刚对我的一个功能分支("feedback_tab")进行了一些更改,然后检出"master"并将它们合并到那里.我实际上是想将它们合并到我的"开发"分支中.

现在,master通过17次提交领先于'origin/master'(它的远程) - 我没有推动合并(并且显然不希望).如何将master恢复到意外合并之前的状态?我git revertgit reset这些东西混淆了.

我查看了我的git日志,并没有将feedback_tab合并到master中的条目.我原本以为它会成为最佳入场券?

有点困惑:/任何帮助欢迎!最大

Hem*_*ela 66

要撤消未推送的合并:

git reset --merge ORIG_HEAD
Run Code Online (Sandbox Code Playgroud)

如果在合并期间出现冲突,则撤消合并的最佳方法是:

git merge --abort
Run Code Online (Sandbox Code Playgroud)

  • 这个`git reset --merge HEAD〜1`帮助了我。 (2认同)

Tam*_*más 35

git reset --hard HEAD~17带领你回到主人头前的17次提交.git rebase -i HEAD~17也许可以摆脱额外的提交.

  • 你可能想使用`reset --merge`.如果合并是唯一发生的事情,那也会做同样的事情,但是如果你进行了本地修改(对于不受合并影响的文件),它会将它们留在原地,而不是像`--hard`那样销毁它们. (22认同)
  • 也可以做`git reset --hard origin/master` (14认同)

Ami*_*far 12

取自git reset

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>
Run Code Online (Sandbox Code Playgroud)


Alo*_*gan 6

这个一定会成功的!

git reset --hard HEAD~1 
git init
Run Code Online (Sandbox Code Playgroud)

第一个将恢复您最近所做的更改(合并),第二个会将存储库初始化为最新版本(因此将快进到原点上的最新版本)

我试过了

git reset --merge
Run Code Online (Sandbox Code Playgroud)

但它并没有达到目的。