Как git определяет, что конкретное слияние имеет конфликт, и что это за конфликт?
Мой предположение будет выглядеть примерно так: если два объединяемых коммита имеют общий родительский коммит, и если они оба изменили строку X по сравнению с тем, что было у родителя, это конфликт.
Что усложняет мое понимание:
- " Изменение строки X "может означать замену ее несколькими новыми строками, и что ' s по-прежнему отображается как один конфликт (версия A имеет эту одну строку, а версия B имеет эти 5 строк или что-то еще)
- Если вы вставили строки в один из коммитов, более тупой алгоритм подумает, что all последующие строки были изменены: строка 30 теперь имеет прежнее содержимое строки 25, 31 имеет прежнее содержимое 26 и т. Д. Но git может сказать, что это то же самое, и я не знаю как.
Может Кто-нибудь объяснит, как это работает, или укажите мне ссылку, которая есть?
задан Nathan Long 7 February 2011 в 11:41
поделиться