我已经合并了两个分支。有很多冲突。都解决了。现在我不确定,也许我在解决冲突期间犯了错误。而且我认为没有其他方法可以检查它是否属实——只需再次运行合并,并逐个检查冲突。
这意味着我需要再创建一个分支来存储我的合并结果,对吧?
我可以避免吗?也许可以从git中的某个地方获取所有这些冲突的文件<<<<<<
,而无需再次运行合并?======
>>>>>>
如果你想看看合并做了什么,你可以做什么
git show <hash-of-merge-commit>
如果你想重做整个合并你做
git checkout <branch-that-you-merged-to>
git reset --hard <hash-of-the-commit-just-before-the-merge>
git merge <branch-that-you-merged-in>
如果您想重做合并,然后将第二次合并与第一次合并进行比较(考虑是否更好),您可以执行以下操作:
git checkout <branch-that-you-merged-to>
git rev-parse HEAD
这为您提供了当前提交的哈希值。记下来。然后做
git reset --hard <hash-of-the-commit-just-before-the-merge>
git merge <branch-that-you-merged-in>
完成合并,然后执行此操作以比较合并
git difftool <hash-of-commit-noted-above>
如果你觉得原来的合并更好,你可以做
git reset --hard <hash-of-commit-noted-above>
是的,这是微不足道的。首先,您需要使用 .找到合并提交的 sha1 id git log
。当您执行以下操作时:
git checkout <sha1>^1
git merge <sha1>^2
你将处于无头状态。^n
表示提交的第 n 个父级。因此,没有创建分支。您可以更仔细地再次解决冲突,然后
git diff HEAD..<sha1>
查看冲突解决方案是否有任何差异。
顺便说一句,在 git 中分支只是提交的 sha1 的一个人类友好的名称,所以不要害怕尽可能多地创建它们。
PS:如果你在 Windows 下工作,^
命令行中的符号是特殊的,你需要将它加倍或引用命令行参数。