Auf der Manpage zu git-merge gibt es eine Reihe von Zusammenführungsstrategien, die Sie verwenden können.
Auflösen - Dies kann nur zwei Köpfe (dh den aktuellen Zweig und einen anderen Zweig, aus dem Sie gezogen haben) mithilfe des 3-Wege-Zusammenführungsalgorithmus auflösen. Es versucht, kreuz und quer verlaufende Mehrdeutigkeiten sorgfältig zu erkennen und gilt allgemein als sicher und schnell.
rekursiv - Dies kann nur zwei Köpfe mithilfe des 3-Wege-Zusammenführungsalgorithmus auflösen. Wenn es mehr als einen gemeinsamen Vorfahren gibt, der für die 3-Wege-Zusammenführung verwendet werden kann, wird ein zusammengeführter Baum der gemeinsamen Vorfahren erstellt und dieser als Referenzbaum für die 3-Wege-Zusammenführung verwendet. Es wurde berichtet, dass dies zu weniger Zusammenführungskonflikten führt, ohne dass es zu Fehlzusammenführungen durch Tests kommt, die mit tatsächlichen Zusammenführungs-Commits aus dem Entwicklungsverlauf des Linux 2.6-Kernels durchgeführt wurden. Darüber hinaus können Zusammenführungen mit Umbenennungen erkannt und verarbeitet werden. Dies ist die Standard-Zusammenführungsstrategie beim Ziehen oder Zusammenführen eines Zweigs.
octopus - Hiermit werden mehr als zwei Köpfe gelöst, es wird jedoch keine komplexe Zusammenführung durchgeführt, für die eine manuelle Auflösung erforderlich ist. Es soll in erster Linie zum Bündeln von Themenzweigköpfen verwendet werden. Dies ist die Standard-Zusammenführungsstrategie, wenn mehr als ein Zweig gezogen oder zusammengeführt wird.
Unsere - Dies löst eine beliebige Anzahl von Köpfen auf, aber das Ergebnis der Zusammenführung ist immer der aktuelle Zweigkopf. Es soll verwendet werden, um die alte Entwicklungsgeschichte der Seitenzweige zu ersetzen.
Teilbaum - Dies ist eine modifizierte rekursive Strategie. Wenn beim Zusammenführen der Bäume A und B B einem Teilbaum von A entspricht, wird B zuerst an die Baumstruktur von A angepasst, anstatt die Bäume auf derselben Ebene zu lesen. Diese Anpassung wird auch am gemeinsamen Ahnenbaum vorgenommen.
Wann sollte ich etwas anderes als die Standardeinstellung angeben? Für welche Szenarien ist jedes am besten geeignet?