如何取消合并 Git 合并?

How to unmerge a Git merge?

我不小心从dev做了一个git pull origin master,master被合并到dev了。 是否可以取消合并?

我已经看到了不同的解决方案,我从 dev 和 master 尝试了这个: git revert -m 1 <commit>(每人一次) 但是我得到:每次都是最新的

如果您发现当时的提交,您可以将您的分支重置为合并之前的状态。

一种方法是使用 git reflog,它会列出您拥有的所有 HEAD。 我发现 git reflog --relative-date 非常有用,因为它显示了每次更改发生的时间。

一旦您发现该提交,只需执行 git reset --hard <commit id>,您的分支就会像以前一样。

如果你有 SourceTree,如果 git reflog 太多了,你可以在那里查找 <commit id>

如果您还没有提交合并,则使用:

git merge --abort

git revert -m 允许取消合并仍然保留合并和取消操作的历史记录。可能适合记录。

如果 git merge --continue 不小心接受了合并,或者 git pull <branch> 时自动提交了更改,那么我们可以通过执行

恢复或撤消最近的合并
git reset --merge HEAD~1

This command reverts our repository to the last commit. HEAD refers to the current state of your repository; HEAD~1 is the last commit in your repository.