Git:揭示潜在的合并/重新设置冲突

Sky*_*olf 6 git merge conflict

有没有一种简单的方法可以使用git命令检测两个分支之间潜在的合并/变基冲突?例如,某些文件都在两个分支中被修改,或者某些文件从一个分支中删除而在另一个分支中可用。我能想象的是用命令找到两个分支的共同祖先

git merge-base
Run Code Online (Sandbox Code Playgroud)

然后列出从公共祖先到两个分支头的所有文件更改状态,然后比较状态列表以找出潜在的合并点。这是正确的方法还是更聪明的东西存在?如果是这样,如何实现呢?

非常感谢。

use*_*342 6

SO上有几个与此问题类似的问题,其中大多数问题都带有可接受的答案,告诉您要做一个git merge --no-commit。但是,此操作仍在签出中执行合并并修改工作树。据我了解,该问题与检测冲突有关。

这个答案提供了一种测试冲突的方法。该答案的注释中提供了测试的压缩形式,如下所示:

git merge-tree `git merge-base branch1 branch2` branch1 branch2 \
  | grep -A3 "changed in both"
Run Code Online (Sandbox Code Playgroud)