На странице man на git -merge существует ряд стратегий слияния, которые вы можете использовать.
-
разрешить - Это может разрешить только две головки (т.е. Текущую ветку и другую ветвь, из которой вы вытащили), используя трехсторонний алгоритм слияния. Он пытается тщательно определить неоднозначность скрещивания слияния и считается в целом безопасным и быстрым.
-
рекурсивный - Это может разрешить только две головы, используя алгоритм трехмерного слияния. Когда существует более чем один общий предки, которые можно использовать для слияния с тремя путями, он создает объединенное дерево общих предков и использует это как дерево ссылок для слияния с тремя путями. Сообщается, что это привело к меньшему количеству конфликтов слияния, не вызывая ошибочных слияний тестов, выполненных при фактических коммандах слияния, взятых из истории развития ядра Linux 2.6. Кроме того, это может обнаруживать и обрабатывать слияния с использованием переименований. Это стратегия слияния по умолчанию при вытягивании или объединении одной ветки.
-
осьминог - Это решает проблему с двумя головками, но отказывается выполнять сложное слияние, требующее ручного разрешения. Он предназначен, прежде всего, для объединения головок ветвей темы. Это стратегия слияния по умолчанию при вытягивании или объединении нескольких ветвей.
-
ours - Это разрешает любое количество головок, но результатом слияния всегда является текущая ветвь. Он предназначен для замены старой истории развития боковых ветвей.
-
поддерево - Это модифицированная рекурсивная стратегия. При объединении деревьев A и B, если B соответствует поддереву A, B сначала корректируется, чтобы соответствовать древовидной структуре A, вместо того, чтобы читать деревья на одном уровне. Эта настройка также выполняется для общего дерева предков.
Когда мне нужно указать что-то другое, чем значение по умолчанию? Какие сценарии лучше всего подходят?