Na stronie podręcznika git-merge dostępnych jest wiele strategii scalania.
resolver - To może rozwiązać tylko dwie głowy (tj. bieżącą gałąź i inną gałąź, z której wyciągnąłeś) przy użyciu 3-kierunkowego algorytmu scalania. Próbuje ostrożnie wykrywać niejednoznaczności łączenia krzyżowego i jest ogólnie uważany za bezpieczny i szybki.
rekurencyjny - To może rozwiązać tylko dwie głowy za pomocą 3-kierunkowego algorytmu scalania. Jeśli istnieje więcej niż jeden wspólny przodek, którego można użyć do łączenia 3-kierunkowego, tworzy ono połączone drzewo wspólnych przodków i używa go jako drzewa referencyjnego dla łączenia 3-kierunkowego. Zgłoszono, że powoduje to mniej konfliktów scalania bez powodowania błędnego łączenia przez testy wykonane na rzeczywistych zatwierdzeniach scalania pobranych z historii rozwoju jądra Linux 2.6. Dodatkowo może to wykrywać i obsługiwać połączenia obejmujące zmiany nazw. Jest to domyślna strategia scalania podczas ciągnięcia lub łączenia jednej gałęzi.
ośmiornica - rozwiązuje więcej niż dwie głowy, ale odmawia wykonania skomplikowanego scalania, które wymaga ręcznego rozwiązania. Jest przeznaczony przede wszystkim do łączenia ze sobą głów oddziałów tematycznych. Jest to domyślna strategia scalania podczas ciągnięcia lub łączenia więcej niż jednej gałęzi.
nasz - To rozwiązuje dowolną liczbę głów, ale wynikiem scalania jest zawsze bieżąca głowa główki. Ma on służyć do zastąpienia starej historii rozwoju bocznych gałęzi.
poddrzewo - jest to zmodyfikowana strategia rekurencyjna. Podczas łączenia drzew A i B, jeśli B odpowiada poddrzewowi A, B jest najpierw dostosowywane do struktury drzewa A, zamiast odczytywania drzew na tym samym poziomie. Korekta ta jest również wykonywana dla wspólnego drzewa przodków.
Kiedy powinienem podać coś innego niż domyślny? Dla jakich scenariuszy każdy jest najlepszy?