有没有一种简单的方法可以使用git命令检测两个分支之间潜在的合并/ rebase冲突?例如,某些文件在两个分支中都被修改,或者某些文件从一个分支中删除并在另一个分支中可用。我能想象的是用命令
找到两个分支的共同祖先git merge-base
然后列出从共同祖先到两个分支的头部的所有文件更改状态,然后比较状态列表以找出潜在的合并点。这是正确的方式还是更聪明的东西?如果是这样,如何实现呢?
非常感谢。
答案 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"