Git сообщает о конфликте слияния без изменений, пустые строки (используя git -subtree)

Я тестирую использование git-subtree, чтобы объединить репо в библиотеку в более крупный проект. В принципе это кажется замечательным. Иногда, когда я делаю "git поддерево pull", я получаю конфликты слияния, подобные этому:

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

Это для изменений, внесенных в репо библиотеки, слияния в файл, который не был изменен локально. Или другой пример, когда я добавил строку в локальном репо проекта, но в файле, который является частью сложенного поддерева:

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

Почему git сообщает об этом как конфликты слияния, но регион, о котором сообщается, как конфликт пуст? Любой способ предотвратить это?

Это достаточно легко разрешить, но он помешает git -subtree workflow

Ответ 1

Это не решение вашей корневой проблемы, а смягчение ее. вы можете использовать git merge -Xignore-space-change чтобы игнорировать изменения пространства в ваших записях.

Вероятно, это проблема с вашими окончаниями строк. вы можете попробовать альтернативу --dry-run в слиянии (git merge не имеет опции --dry-run):

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

чтобы увидеть изменения до того, как вы их совершите.

Ответ 2

Используйте подмодули для совместного использования. Существует git -slave, если вы выполняете большую работу с совместно используемыми и не совместно используемыми проектами, которые необходимо скоординировать. Ваша граница, закончившая дислокацию памяти, исчезнет.