github 如何在实际合并之前发现两个分支是否存在冲突?

How does github finds If two branches has conflict before actually merging them?

在拉取请求选项中。选择两个分支后,github 通知两个分支是否有任何冲突。查找分支冲突的命令是什么?

假设你想检查 'dev' 分支合并到 'master' 分支的冲突,那么首先检查到 'master' 分支,然后使用下面提到的合并命令:

$ git checkout master
$ git merge branch2 --no-ff --no-commit

检查合并冲突的逻辑很复杂,但简而言之,它会比较 'last merged commit'[= 中所有新提交的文件18=] 一行一行,如果两个分支的同一行发生变化,它将把它标记为冲突,因为 git 不知道该选择哪一个。

git merge-tree

要在不进行实际更改的情况下计算 2 个修订版的合并结果:

git merge-tree $(git merge-base <rev1> <rev2>) <rev1> <rev2>

这 2 个修订版本至少有 1 个共同祖先。如果有冲突,将打印 <<<<<<<=======>>>>>>> 等标记。

更新:对于二进制文件冲突,日志包含类似

的行
warning: Cannot merge binary files: <binary path> (.our .vs .their)