我正在测试使用git-subtree将库仓库合并到更大的项目中。原则上似乎很棒。有时当我做“git subree pull”时,我会遇到这样的合并冲突:
<<<<<<< HEAD
=======
An inserted line from the lib repo
>>>>>>> 4d348903449ebb584ab224cb34c6038fbf6b352d
这是在库仓库中进行的更改,合并到一个尚未在本地修改的文件中。或者另一个例子,我在本地项目仓库中添加了一行,但是在一个文件中,该文件是要合并的子树的一部分:
<<<<<<< HEAD
Another inserted line
=======
>>>>>>> 4d348903449ebb584ab224cb34c6038fbf6b352d
为什么git会将这些报告为合并冲突,但该地区报告的冲突是空的?有什么方法可以阻止吗?
这些很容易解决,但它会混淆git-subtree工作流程
答案 0 :(得分:3)
它不是解决您的根本问题的方法,而是缓解它的根本问题。你可以使用
git merge -Xignore-space-change
忽略提交中的空间更改。
这可能是您的行结尾的问题。您可以在合并中尝试--dry-run
替代方法(git merge
没有--dry-run
选项):
$git merge -Xignore-space-change --no-commit --no-ff $BRANCH
在实际提交之前查看更改。
答案 1 :(得分:-3)
使用子模块来保存共享工作。如果您对需要协调的共享和非共享项目进行大量工作,那么就有git-slave。您的行结束存储差异将消失。