Кажется, я столкнулся с ситуацией, когда git не замечает встроенных изменений при слиянии ..
В моей главной ветке был файл с такой строкой:
process &block if block
И я сделал выборку из git-репо и попытался объединить изменения из того же файла, который имел строку с:
process 1, &block if block
Но git не дал предупреждения о возможном конфликте слияния и не выделил строку как измененную [1]. Изменение было просто проигнорировано, не обновляя файл строкой [2].
Почему git не заметил это встроенное изменение? И обновил строку (поскольку строка была из более позднего коммита)?
EDIT:
[1] - git не указал, что он изменился, когда я занимался разрешением конфликта (вы знаете, он не вставлял «<<<» в исходном коде вокруг него). И последующий коммит слияния никак не показывает строку как измененную (ни при запуске gif diff с цветами, ни при просмотре кода на github). </p>
[2] - Линия была получена из репозитория, в котором содержалась более новая версия того же самого драгоценного камня, над которым я работал (поэтому должны быть некоторые общие предки коммитов, с которыми можно выполнить слияние. Кроме того, строка была обновлена в позже сделайте коммит на том же репо, так что для git должно быть очевидно, что это действительно обновление).
EDIT:
В случае, если это играет роль, это было дерево коммитов до слияния:
Оригинальный камень (общее происхождение):
--A
Моя основная ветка (на самом деле это форк оригинального камня):
--A--
\
--B
(линия не была изменена в B, но пришла из A)
Репо, слитый в мастер (обновленная версия драгоценного камня):
--A---C---D
(строка была обновлена в D)