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

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

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

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

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

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

Их достаточно легко решить, но это портит рабочий процесс git-subtree.


person Jeremy Slade    schedule 29.12.2011    source источник
comment
Убедитесь, что ваши окончания строк одинаковы во всех репозиториях (Linux, Windows, Mac)   -  person knittl    schedule 30.12.2011
comment
Я думаю, что это произошло (во втором примере), когда локально измененный файл имеет более позднюю дату изменения, чем у объединенной версии.   -  person Малъ Скрылевъ    schedule 27.11.2013


Ответы (2)


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

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

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

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

person smohamed    schedule 26.10.2016

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

person Adam Dymitruk    schedule 30.12.2011
comment
Проголосовал против, потому что я спросил об использовании git-subtree, а не о том, как использовать подмодули. И нет никаких доказательств того, что это как-то связано с окончаниями строк. - person Jeremy Slade; 29.01.2012