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, если вы выполняете большую работу с совместно используемыми и не совместно используемыми проектами, которые необходимо скоординировать. Ваша граница, закончившая дислокацию памяти, исчезнет.