Git报告合并冲突,没有更改,空行(使用Git -subtree)



我正在测试使用git-subtree将库repo合并到更大的项目中。原则上看起来很棒。有时,当我执行"git子树拉取"时,会出现这样的合并冲突:

<<<<<<< HEAD
=======
An inserted line from the lib repo
>>>>>>> 4d348903449ebb584ab224cb34c6038fbf6b352d

用于在库repo中进行的更改,合并到未在本地修改的文件中。或者另一个例子,我在本地项目repo中添加了一行,但是在被合并的子树的一部分的文件中:

<<<<<<< HEAD
Another inserted line
=======
>>>>>>> 4d348903449ebb584ab224cb34c6038fbf6b352d

为什么git会将这些报告为合并冲突,而报告为冲突的区域是空的?有什么办法可以预防吗?

这些都很容易解决,但它混淆了git-subtree工作流

这不是解决根本问题的方法,而是缓解问题的方法。你可以使用
git merge -Xignore-space-change 忽略提交中的空间更改。

可能是你的行尾有问题。您可以在合并中尝试--dry-run替代(git merge没有--dry-run选项):

$git merge -Xignore-space-change --no-commit --no-ff $BRANCH

使用子模块来保存共享的工作。如果你做了很多需要协调的共享和非共享项目的工作,就会出现gift -slave。您的行尾存储差异将消失。

最新更新