Стратегии слияния Git: пробелы делают по умолчанию, не показывают конфликтов и дают неожиданные результаты

После многих испытаний я получил этот простой сценарий:

a --> b --> c --   (master)
 \              \
  --> d --> b' --> e   (branch)

Куда:

b' вишняbe этосливаться от .master

b' было сделано послеc а такжеc имеет модификации к тем же файлам, что и (bd вероятно нене имеет значения).

e может легко выглядеть очень неожиданно.

Позволять'Скажи все о 'они имеют дело с одним файлом ""foobar.txt, Вот как файл выглядит в каждом коммите:

// ----------- a
foo

delme

bar

// ----------- b
foo

delme

new

bar

// ----------- c
foo

new

bar

// ----------- b'
foo

delme

new

bar

// ------------ e
foo

new

new

bar

Теперь, это было из моего краткого теста только сейчас, с этимточный настроить.

Если вы удалите всепространства там такой проблемы нет, Слияние будет просто обвинить в конфликте, как ябуду ожидать. Но я немы думаем, что использование любого параметра -X для пробеловищите здесь ... Или это?

Тем временем, в моем производственном коде, который был причиной, по которой я начал исследовать все это, и в которой не так много пустых мест, я увиделe выглядит примерно так:

// ----------- e
foo

delme

new

bar

Все, что происходит сникогда не обвиняй ни в каком конфликте!

Если бы мерзавец мог сделать здесь какое-нибудь магическое авто слияние вуду, это то, что яЯ ожидаю, что это будет выглядеть так:

// ----------- e
foo

new

bar

Но этого тоже не бывает.

Как немногоотказ...

Я тоже пробовалчтение руководства f, Но я могу'в стратегиях слияния не слишком много понимаешь Плюс это нене могу сказать, чтоresolve Стратегия делает под капотом, например:

Он пытается тщательно обнаружить неоднозначности слияния и считается в целом безопасным и быстрым.

Это ничего не говорит.

Текст о дефолтеrecursive больше, но я тоже не могизвлечь из него достаточно информации:

Сообщается, что это приводит к меньшему количеству конфликтов слияния, не вызывая слияний в результате тестов, выполненных на реальных коммитах слияния, взятых из истории разработки ядра Linux 2.6.

Об этом сообщает? Таким образом, мы получили 1 очень тяжелый юнит-тест и предположили, чтовсе в порядке?

Ну, этоэто слишком расплывчато для меня.

Я думаюЯ должен делать что-то не так! Итак, как я могу сделать это правильно?

Что мне нужно сделать, чтобы вернуться к слиянию без забот?

Ответы на вопрос(1)

Ваш ответ на вопрос