При объединении git проверяет различия в контексте с окружающими строками.Рассмотрим этот код:
def a
do_something_a
end
def b
do_something_b
end
def c
do_something_c
end
Когда одна ветвь что-то меняет в методе a
(или удаляет его), а другая ветвь меняет что-то в методе c
(или удаляет его), у вас все еще есть контекстметода b
для обоих различий.Вот почему изменения, вероятно, будут сливаться без конфликтов.
Однако, если у вас есть что-то вроде этого:
def a
do_something_a
end
def c
do_something_c
end
, вы, скорее всего, столкнетесь с конфликтами при редактировании одного метода в одной ветви идругой в другой ветке, потому что вы сломали соответствующий контекст diff в другой ветке.
Вот почему это происходит чаще в конце файла - потому что есть толькоконтекст выше различий, но ни один под ним.