如何取消Git合并?

l5tcr1uw  于 2022-12-02  发布在  Git
关注(0)|答案(5)|浏览(255)

我不小心做了一个来自dev的git pull origin master,master被合并到dev中。是否可以取消合并?
我已经看到了不同的解决方案,我尝试了这一个从开发和主:git revert -m 1 <commit>(每个人一次)但我得到:一切都是最新的,每一次

0kjbasz6

0kjbasz61#

如果你找到了合并之前的提交,你可以把分支重置到合并之前的状态。
一种方法是使用git reflog,它会列出你所有的标题。我发现git reflog --relative-date非常有用,因为它显示了每个更改发生的时间。
一旦你找到那个提交,只要执行一个git reset --hard <commit id>,你的分支就会和以前一样。
如果您有SourceTree,如果git reflog太多,您可以在那里查找<commit id>

emeijp43

emeijp432#

如果尚未提交合并,请用途:
git merge --abort

gab6jxml

gab6jxml3#

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

git reset --merge HEAD~1

这个命令将仓库恢复到上次提交的状态。HEAD指仓库的当前状态; HEAD~1是系统信息库中的最后一个提交。

ctehm74n

ctehm74n4#

git revert -m允许取消合并,同时保留合并和取消操作的历史记录。可能对文档记录很有帮助。

42fyovps

42fyovps5#

如果是历史合并,首先使用git log找到合并提交id,如下所示:

git log --after="2022-09-29 00:00:00" --before="2022-09-30 23:00:00"

这将显示2022年9月29日的日志(假设合并发生在2022年9月29日)
然后找到提交id,并运行:

git revert -m 1 <commit id>

相关问题