Menu
Coddy logo textTech

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.

challenge icon

Aufgabe

Mittel

Sie 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:

  1. Erstellen Sie einen neuen Branch namens feature und hängen Sie die Zeile added an top.txt an; committen Sie die Änderung.
  2. Wechseln Sie zurück zu main und hängen Sie die Zeile added an bottom.txt an; committen Sie die Änderung.
  3. Mergen Sie feature in main mit der Nachricht Merge 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

Terminal
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Versionsverwaltung