如何取消合并 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.
我不小心从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.