Почему при изменении другой строки возникает конфликт слияния git?

Я изменил разные строки в разных ветках, но эти изменения происходят git mergeконфликт. Я прочитал пост, но думаю, что изменения происходят в совершенно разных строках.

Вот мои тестовые коды.

филиал

Hello, my first conflict.
Second line.a    # add a single character 'a' at line 2
Third line.

филиал-а

Hello, my first conflict.
Second line.
Third line.a    # add a single character 'a' at line 3

И я выполнил следующий код, он говорит о конфликте слияния git.

$ git checkout branch-base
$ git merge branch-a

Вот мой файл конфликта.

Hello, my first conflict.
<<<<<<< HEAD
Second line.a
Third line.
=======
Second line.
Third line.a
>>>>>>> branch-a

Почему происходит этот конфликт? Думаю, я внес изменения в совершенно разные строки (хотя они и соседние).

1 ответ

Решение

Должна быть хотя бы одна разделительная линия, которая остается неизменной, чтобы их можно было рассматривать отдельно и не создавать конфликта. Учитывая, что они не разделены линией, которая остается неизменной во всех трех ревизиях (две подсказки и общий предок), они рассматриваются как единый блок. Одна ветвь изменяет этот блок в одну сторону, другая - в другую... Итак, конфликт.

Другие вопросы по тегам