Zusammenführen von Branches
Verständnis des Zusammenführens von Branches
In Git bezeichnet Mergen den Vorgang, Änderungen von einem Branch in einen anderen zu integrieren. Der häufigste Anwendungsfall ist das Zusammenführen von Feature-Branches in den Haupt-Branch (z. B. main oder master). Dies stellt sicher, dass die neuesten Funktionen und Fehlerbehebungen in den Haupt-Codebestand aufgenommen werden.
Grundlegender Merge-Workflow
Zunächst die beiden letzten Commits anzeigen.
Beachte, dass du dich aktuell auf dem Branch feature/new-feature befindest.
Wie ersichtlich ist, befindet sich der Branch master einen Commit hinter.
Vor dem Zusammenführen muss auf den Branch gewechselt werden, in den die Änderungen integriert werden sollen.
Zum master-Branch wechseln und die zwei neuesten Commits darauf anzeigen:
Der Branch master befindet sich tatsächlich einen Commit hinter dem feature-Branch.
Zum Zusammenführen wird der Befehl git merge verwendet und der Branch angegeben, der in den aktuellen Branch integriert werden soll.
Um beispielsweise den Branch feature/new-feature in master zu integrieren, folgenden Befehl ausführen:
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 Merge-Typen werden später in diesem Kapitel behandelt. Zuvor die beiden letzten Commits anzeigen:
Sie befinden sich weiterhin auf dem master-Branch, aber dieser ist nun auf dem aktuellen Stand mit dem feature-Branch, wobei beide Branches auf denselben Commit zeigen.
Der HEAD zeigt weiterhin auf den master-Branch, da Sie sich während des Merges 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 angegeben. 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 von Merge wird der Zeiger des ausgecheckten Branches einfach auf den neuesten Commit aktualisiert.
Three-Way-Merge
Wenn sich jedoch die Historien der Branches unterschieden haben, das heißt, nach einem gemeinsamen Commit wurden auf jedem Branch separat neue Commits erstellt, wird ein Three-Way-Merge durchgeführt.
Der Begriff "Three-Way" bezieht sich auf die drei Versionen, die am Merge beteiligt sind:
- die Version des jüngsten gemeinsamen Vorgängers (Commit);
- die Version des letzten Commits im aktuellen Branch (HEAD);
- die Version des letzten 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
Awesome!
Completion rate improved to 3.57
Zusammenführen von Branches
Swipe um das Menü anzuzeigen
Verständnis des Zusammenführens von Branches
In Git bezeichnet Mergen den Vorgang, Änderungen von einem Branch in einen anderen zu integrieren. Der häufigste Anwendungsfall ist das Zusammenführen von Feature-Branches in den Haupt-Branch (z. B. main oder master). Dies stellt sicher, dass die neuesten Funktionen und Fehlerbehebungen in den Haupt-Codebestand aufgenommen werden.
Grundlegender Merge-Workflow
Zunächst die beiden letzten Commits anzeigen.
Beachte, dass du dich aktuell auf dem Branch feature/new-feature befindest.
Wie ersichtlich ist, befindet sich der Branch master einen Commit hinter.
Vor dem Zusammenführen muss auf den Branch gewechselt werden, in den die Änderungen integriert werden sollen.
Zum master-Branch wechseln und die zwei neuesten Commits darauf anzeigen:
Der Branch master befindet sich tatsächlich einen Commit hinter dem feature-Branch.
Zum Zusammenführen wird der Befehl git merge verwendet und der Branch angegeben, der in den aktuellen Branch integriert werden soll.
Um beispielsweise den Branch feature/new-feature in master zu integrieren, folgenden Befehl ausführen:
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 Merge-Typen werden später in diesem Kapitel behandelt. Zuvor die beiden letzten Commits anzeigen:
Sie befinden sich weiterhin auf dem master-Branch, aber dieser ist nun auf dem aktuellen Stand mit dem feature-Branch, wobei beide Branches auf denselben Commit zeigen.
Der HEAD zeigt weiterhin auf den master-Branch, da Sie sich während des Merges 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 angegeben. 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 von Merge wird der Zeiger des ausgecheckten Branches einfach auf den neuesten Commit aktualisiert.
Three-Way-Merge
Wenn sich jedoch die Historien der Branches unterschieden haben, das heißt, nach einem gemeinsamen Commit wurden auf jedem Branch separat neue Commits erstellt, wird ein Three-Way-Merge durchgeführt.
Der Begriff "Three-Way" bezieht sich auf die drei Versionen, die am Merge beteiligt sind:
- die Version des jüngsten gemeinsamen Vorgängers (Commit);
- die Version des letzten Commits im aktuellen Branch (HEAD);
- die Version des letzten 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!