Как происходит конфликт слиянием git?
Я создал репозиторий git и добавил в него текстовый файл. Это 100% для обучения.
-
Я добавил "1" в текстовый файл и поручил ему освоить.
-
Создана новая ветка от мастера и добавлена "2".
-
Наконец, создана ветка от мастера и добавлена "3".
Не могли бы вы объяснить, как может возникнуть конфликт в этом или любом другом сценарии?
Ответы
Ответ 1
У вас возникнет конфликт, если вы слились:
-
branch2
до master
(без конфликтов)
-
branch3
to master
(конфликт):
Это потому, что:
- Общим предком будет
master
(со второй линией пустой)
- исходное содержимое
branch3
(со второй строкой, включающей "3" )
- конечный контент находится на последнем из
master
(со второй строкой, включающей "2", от слияния branch2
до master
)
Git попросит вас выбрать, какой контент сохранить ( "3", "2" или оба).
Сначала выполните слияния после:
git config merge.conflictstyle diff3
См. "Исправить конфликты слияния в Git?".
Ответ 2
Конфликт слияния происходит, когда две ветки изменяют один и тот же регион файла и впоследствии сливаются. Git не может знать, какое из изменений необходимо сохранить, и, следовательно, требуется вмешательство человека для разрешения конфликта.
В этом случае ваши шаги 2 и 3 создают две ветки с конфликтующими изменениями.