Die einfache Verschmelzungsfähigkeit von Git ist eine ihrer Stärken. Während einer Zusammenführung verwendet Git eine schnelle Vorwärtsverschmelzung, wenn festgestellt wird, dass der Kopf des aktuellen Zweigs ein Vorfahr des Commits ist. In einer Fast-Forward-Zusammenführung gibt es kein neues Commit. Git bewegt nur den Zeiger. Wenn dieses Verhalten nicht wünschenswert ist, können Sie die No-FF-Flag verwenden, um einen neuen Commit für die Zusammenführung zu erstellen.
Wie das Zusammenführen mit und ohne schnelle Vorlauf aussieht
Nach einem schnellen Vorlauf sieht Ihre Git-Geschichte so aus:
C0 -> C1 -> C2-> C3
Für die gleiche Anzahl von Commits finden Sie hier eine Zusammenführungsgeschichte ohne schnelle Vorlauf:
Im ersten Fall gibt es keinen Hinweis darauf, dass es eine Verzweigung gab. Im zweiten Fall zeigt die Geschichte einen C4.
Durch ein Beispiel gehen
Sie erstellen ein Git-Repository, erstellen einen Zweig und versuchen die Zusammenschlüsse mit und ohne schnell vorwärts.
Zunächst können Sie das Git -Repository mit den folgenden Schritten erstellen:
$ mkdir my_projectErstellen wir nun einen Zweig namens Funktionen und begehen einige Änderungen:
$ Git Branch FunktionenKehren wir zurück zu Master Branch und Fusion Features Branch in ihn:
$ Git Checkout Master
$ git merge Funktionen
Ausgang:
Aktualisieren von 08076FB… 9ee88EBWenn Sie den Geschichte überprüfen, werden Sie sehen:
$ Git -Protokoll -EinmalAlle Commits aus Features Branch befinden sich jetzt im Master -Zweig. Wenn Sie weiterhin Änderungen an Master vornehmen, gibt es keine Möglichkeit zu wissen, wann die Features -Zweigstelle in ihn zusammengeführt wurde.
Wiederholen Sie den Abschnitt 1 für einen neuen Ordner.
Versuchen Sie dann eine Zusammenführung ohne schnelles Vorspeisen:
$ Git Checkout Master
$ git merge-no-ff-Funktion
Es wird Folgendes in der Standardtexteditor Ihres Git -Standardtextes öffnen:
Merge Branch 'Funktionen'
# Bitte geben Sie eine Commit -Nachricht ein, um zu erklären, warum diese Zusammenführung erforderlich ist,
# vor allem, wenn es einen aktualisierten Upstream in eine Themenabteilung verschmilzt.
#
# Zeilen, die mit '#' beginnen, werden ignoriert, und eine leere Nachricht abbricht
# Das Commit.
Ändern Sie die Kommentare. In diesem Fall können Sie einfach "C4:" hinzufügen, bevor "Branch" -Funktionen mergen ". Die Ausgabe sollte so aussehen:
Zusammenführen durch die "rekursive" Strategie.Wenn Sie nun die Geschichte überprüfen, sollte es wie folgt aussehen:
$ Git -Protokoll -EinmalSie können sehen, dass diese Version von Merge, obwohl Sie genau die gleichen Änderungen haben.
Abschluss
Das Git Fusion No-FFF-Flag hilft dabei, eine lesbarere Geschichte zu erstellen. Es ermöglicht Ihnen, Tags zu setzen, die deutlich zeigen, wo die Zusammenführungen aufgetreten sind. Es kann Ihnen Zeit und Mühe beim Debuggen ersparen.