Git:揭示潜在的合并/反转冲突

时间:2014-02-25 08:43:09

标签: git merge conflict

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

找到两个分支的共同祖先
git merge-base

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

非常感谢。

1 个答案:

答案 0 :(得分:5)

有几个与SO类似的问题,其中大多数都有可接受的答案,告诉你做git merge --no-commit。但是,这仍然会在结帐时执行合并并修改工作树。我理解的问题是检测冲突。

This answer提供了一种测试冲突的方法。对该答案提供in a comment的浓缩形式的测试如下:

git merge-tree `git merge-base branch1 branch2` branch1 branch2 \
  | grep -A3 "changed in both"