Zusammenführen von Branches
Swipe um das Menü anzuzeigen
Verständnis des Zusammenführens von Branches
In Git bezeichnet Merging den Prozess, Änderungen von einem Branch in einen anderen zu integrieren. Der häufigste Anwendungsfall ist das Zusammenführen von Feature-Branches in den Main-Branch (z. B. main oder master). Dadurch wird sichergestellt, dass die neuesten Funktionen und Fehlerbehebungen in den Haupt-Codebestand aufgenommen werden.
Grundlegender Merge-Workflow
Zuerst die beiden letzten Commits anzeigen.
Beachte, dass du dich aktuell auf dem Branch feature/new-feature befindest.
git log -n 2
Wie Sie sehen können, ist der master-Branch einen Commit hinterher.
Bevor Sie zusammenführen, müssen Sie zum Branch wechseln, in den die Änderungen integriert werden sollen.
Wechseln Sie zum master-Branch und zeigen Sie die beiden neuesten Commits darauf an:
git checkout master
git log -n 2
Der master-Branch ist tatsächlich einen Commit hinter dem feature-Branch.
Um sie zusammenzuführen, verwende den Befehl git merge und gib den Branch an, der in den aktuellen Branch zusammengeführt werden soll.
Um beispielsweise den Branch feature/new-feature in master zu mergen, führe folgenden Befehl aus:
git merge feature/new-feature
Die nach Ausführung des Befehls angezeigte Meldung enthält Folgendes: Fast-forward, was angibt, dass ein Fast-Forward-Merge durchgeführt wurde.
Die beiden Arten von Merges werden später in diesem Kapitel behandelt. Vorher die beiden letzten Commits anzeigen:
git log -n 2
Sie befinden sich weiterhin auf dem master-Branch, aber dieser ist jetzt mit dem feature-Branch synchronisiert, wobei beide Branches auf denselben Commit zeigen.
Der HEAD zeigt weiterhin auf den master-Branch, da Sie sich während des Mergings auf diesem Branch befanden.
Merge-Typen
In Git gibt es zwei Arten von Merge-Operationen:
- Fast-Forward-Merge;
- Three-Way-Merge.
Fast-Forward-Merge
Der von Ihnen durchgeführte Merge ist ein Fast-Forward-Merge, wie in der Meldung angezeigt. Dieser Typ tritt auf, wenn alle Commits des aktuell ausgecheckten Branches auch im zu mergenden Branch vorhanden sind, das heißt, ihre Commit-Historien weichen nicht voneinander ab.
Zur Verdeutlichung siehe folgende Abbildung:
Bei dieser Art des Mergings wird der Zeiger des ausgecheckten Branches einfach auf den neuesten Commit aktualisiert.
Drei-Wege-Merge
Wenn sich jedoch die Historie der Branches verzweigt hat, das heißt, nach einem gemeinsamen Commit wurden auf jedem Branch separat neue Commits erstellt, wird ein Drei-Wege-Merge durchgeführt.
Der Begriff "Drei-Wege" bezieht sich auf die drei Versionen, die am Merge beteiligt sind:
- Die Version des jüngsten gemeinsamen Vorgängers (Commit);
- Die Version des neuesten Commits im aktuellen Branch (HEAD);
- Die Version des neuesten Commits im zu mergenden Branch.
Siehe folgende Abbildung dieses Merge-Typs:
So funktioniert ein Drei-Wege-Merge:
- Git identifiziert die Änderungen, die auf jedem der Branches nach dem jüngsten gemeinsamen Vorfahren vorgenommen wurden;
- Wenn jeder Branch Änderungen in unterschiedlichen Dateien oder in verschiedenen Teilen derselben Datei enthält, wird Git die Änderungen automatisch zusammenführen, indem sie im resultierenden Commit kombiniert werden;
- Andernfalls tritt ein Merge-Konflikt auf.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen