Drei-Wege-Merge
Teil des Abschnitts Versionsverwaltung der Terminal-Journey von Coddy. Lektion 36 von 58.
Wenn sich beide Zweige unabhängig voneinander weiterentwickelt haben, kann Git nicht einfach einen Fast-Forward durchführen. Stattdessen führt es einen Three-Way-Merge durch: Es betrachtet den gemeinsamen Vorfahren und die beiden Spitzen der Zweige und erstellt einen neuen Commit, der sie zusammenführt.
Dieser neue Commit ist der Merge-Commit. Er hat zwei Eltern-Commits, einen aus 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
MittelDu beginnst in einem neuen Ordner mit top.txt (Inhalt: a) und bottom.txt (Inhalt: b).
Initialisiere das Repo, erstelle einen ersten Commit und dann:
- Erstelle den Branch
featureund hänge die Zeileaddedantop.txtan; committe. - Wechsle zu
mainund hänge die Zeileaddedanbottom.txtan; committe. - Führe
featureinmainmit der NachrichtMerge featurezusammen.
Gib die Anzahl der von HEAD aus erreichbaren Commits mit git rev-list --count HEAD aus. Die erwartete Anzahl ist 4 (initial + feature + main + merge).
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-StatusRückblick – Erstes Repository5Dateien ignorieren
Warum Dateien ignorierenGitignore-MusterIgnore-Regeln prüfenZusammenfassung – Sauberes Repo8Zusammenführen
Was ist ein Merge?Fast-Forward-MergeDrei-Wege-MergeMerge-KonflikteEinen Konflikt lösenRückblick – Merge-Meister3Änderungen verfolgen
Der Staging-BereichGit AddGit CommitEine verfolgte Datei ändernGit LogRückblick – Erste Commits6Rezeptseiten-Projekt
ProjektübersichtInitialisieren und IgnorierenÜbe selbstständig: Terminal-Playground