2011-12-29 1 views
14

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

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

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

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

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

Это достаточно легко решить, но это портит рабочий процесс ГИТ-поддерево

+0

Убедитесь, что ваши окончания строк одинаковы во всех хранилищах (Linux, Windows, Mac) – knittl

+0

Я думаю, что это произошло (во втором примере), когда локально измененный файл изменил дату laster, чем одна из объединенной версии. –

ответ

-3

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

+0

Пожалуйста, добавьте комментарии для downvote. –

+0

Downvoted, потому что я спросил об использовании git-поддерева, а не о том, как использовать подмодули. И нет никаких доказательств, что это имеет какое-либо отношение к окончаниям строк. –

+0

Да, правильно. Я неправильно понял. –

1

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

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

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

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

Смежные вопросы