我不小心做了一个来自dev的git pull origin master,master被合并到dev中。是否可以取消合并?我已经看到了不同的解决方案,我尝试了这一个从开发和主:git revert -m 1 <commit>(每个人一次)但我得到:一切都是最新的,每一次
git pull origin master
git revert -m 1 <commit>
0kjbasz61#
如果你找到了合并之前的提交,你可以把分支重置到合并之前的状态。一种方法是使用git reflog,它会列出你所有的标题。我发现git reflog --relative-date非常有用,因为它显示了每个更改发生的时间。一旦你找到那个提交,只要执行一个git reset --hard <commit id>,你的分支就会和以前一样。如果您有SourceTree,如果git reflog太多,您可以在那里查找<commit id>。
git reflog
git reflog --relative-date
git reset --hard <commit id>
<commit id>
emeijp432#
如果尚未提交合并,请用途:git merge --abort
git merge --abort
gab6jxml3#
如果git merge --continue意外地接受了合并,或者如果在git pull <branch>时自动提交了更改,那么我们可以通过执行
git merge --continue
git pull <branch>
git reset --merge HEAD~1
这个命令将仓库恢复到上次提交的状态。HEAD指仓库的当前状态; HEAD~1是系统信息库中的最后一个提交。
ctehm74n4#
git revert -m允许取消合并,同时保留合并和取消操作的历史记录。可能对文档记录很有帮助。
git revert -m
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>
5条答案
按热度按时间0kjbasz61#
如果你找到了合并之前的提交,你可以把分支重置到合并之前的状态。
一种方法是使用
git reflog
,它会列出你所有的标题。我发现git reflog --relative-date
非常有用,因为它显示了每个更改发生的时间。一旦你找到那个提交,只要执行一个
git reset --hard <commit id>
,你的分支就会和以前一样。如果您有SourceTree,如果
git reflog
太多,您可以在那里查找<commit id>
。emeijp432#
如果尚未提交合并,请用途:
git merge --abort
gab6jxml3#
如果
git merge --continue
意外地接受了合并,或者如果在git pull <branch>
时自动提交了更改,那么我们可以通过执行这个命令将仓库恢复到上次提交的状态。HEAD指仓库的当前状态; HEAD~1是系统信息库中的最后一个提交。
ctehm74n4#
git revert -m
允许取消合并,同时保留合并和取消操作的历史记录。可能对文档记录很有帮助。42fyovps5#
如果是历史合并,首先使用git log找到合并提交id,如下所示:
这将显示2022年9月29日的日志(假设合并发生在2022年9月29日)
然后找到提交id,并运行: