Three-Way-Merge
Teil des Abschnitts Versionsverwaltung der Terminal-Journey von Coddy — Lektion 36 von 58.
Wenn sich beide Branches unabhängig voneinander weiterentwickelt haben, kann Git nicht einfach einen Fast-Forward-Merge durchführen. Stattdessen führt es einen Drei-Wege-Merge aus: Es betrachtet den gemeinsamen Vorfahren und die beiden Branch-Spitzen und erstellt einen neuen Commit, der beide kombiniert.
Dieser neue Commit ist der Merge-Commit. Er hat zwei Eltern-Commits, einen von jedem Branch:
git switch main
git merge feature -m "Merge feature"Das -m-Flag stellt die Merge-Commit-Nachricht direkt bereit, sodass Git keinen Editor öffnet.
Meistens kann Git die Änderungen aus beiden Branches automatisch zusammenführen, solange sie unterschiedliche Teile der Dateien betreffen. Konflikte treten nur auf, wenn beide Branches dieselben Zeilen geändert haben, was das Thema der nächsten Lektion ist.
Aufgabe
MittelSie beginnen in einem neuen Ordner mit top.txt (Inhalt: a) und bottom.txt (Inhalt: b).
Initialisieren Sie das Repository, erstellen Sie einen ersten Commit und führen Sie dann Folgendes aus:
- Erstellen Sie einen neuen Branch namens
featureund hängen Sie die Zeileaddedantop.txtan; committen Sie die Änderung. - Wechseln Sie zurück zu
mainund hängen Sie die Zeileaddedanbottom.txtan; committen Sie die Änderung. - Mergen Sie
featureinmainmit der NachrichtMerge feature.
Geben Sie die Anzahl der von HEAD aus erreichbaren Commits mit git rev-list --count HEAD aus. Die erwartete Anzahl ist 4 (Initial + Feature + Main + Merge).
Spickzettel
Wenn beide Branches auseinandergelaufen sind, führt Git einen Drei-Wege-Merge aus und erstellt einen neuen Merge-Commit mit zwei Eltern-Commits:
git switch main
git merge feature -m "Merge feature"Das -m-Flag setzt die Merge-Commit-Nachricht, ohne einen Editor zu öffnen. Git führt den Merge automatisch durch, solange beide Branches unterschiedliche Zeilen geändert haben.
Probier es selbst
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Versionsverwaltung
2Erste Schritte
Ein Repository initialisierenDer .git-OrdnerIdentität konfigurierenGit StatusZusammenfassung – Erstes Repo5Dateien ignorieren
Warum Dateien ignorierenGitignore-MusterIgnore-Regeln prüfenZusammenfassung – Sauberes Repo3Änderungen nachverfolgen
Die Staging AreaGit AddGit CommitÄndern einer verfolgten DateiGit LogZusammenfassung – Erste Commits6Projekt Rezept-Website
ProjektübersichtInitialisieren und Ignorieren