Zusammenführen von Branches
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
). Dies stellt sicher, dass die neuesten Funktionen und Fehlerbehebungen in den Haupt-Codebestand aufgenommen werden.
Grundlegender Merge-Workflow
Betrachten wir zunächst die beiden letzten Commits. Beachten Sie, dass wir uns aktuell auf dem Branch feature/new-feature
befinden.
Wie Sie sehen, ist unser Branch master
einen Commit hinterher. Bevor wir jedoch Änderungen zusammenführen, müssen wir zum Branch wechseln, in den wir die Änderungen integrieren möchten. Wechseln wir also zum Branch master
und zeigen die beiden letzten Commits auf diesem Branch an:
Der master
-Branch liegt tatsächlich einen Commit hinter dem feature-Branch, daher führen wir nun das Zusammenführen durch. Um den Merge-Prozess zu starten, sollte der Befehl git merge
verwendet und der Branch angegeben werden, der in den aktuellen Branch zusammengeführt werden soll. Um beispielsweise einen Feature-Branch namens feature/new-feature
in den master
-Branch zu mergen, sollte folgender Befehl ausgeführt werden:
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 betrachten wir jedoch die beiden letzten Commits:
Wir befinden uns weiterhin auf dem master
-Branch, jedoch ist dieser Branch nun auf dem aktuellen Stand mit unserem feature-Branch, wobei beide Branches auf denselben Commit verweisen.
Der HEAD verweist weiterhin auf den master
-Branch, da wir uns während des Mergings auf diesem Branch befanden.
Merge-Typen
Tatsächlich gibt es in Git zwei Arten von Merge-Operationen:
- Fast-Forward-Merge;
- Drei-Wege-Merge.
Fast-Forward-Merge
Der Merge, den wir durchgeführt haben, ist ein Beispiel für einen Fast-Forward-Merge, wie in der Meldung erwähnt. Diese Art von Merge wird durchgeführt, wenn alle Commits des Branches, auf dem wir uns aktuell befinden (ausgecheckter Branch), ebenfalls Teil des zu mergenden Branches sind. Das bedeutet, dass sich die Commit-Historien dieser Branches nicht unterscheiden. Schauen wir uns zur Verdeutlichung die folgende Abbildung an:
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 Vorfahren (Commit);
- die Version des letzten Commits im aktuellen Branch (HEAD);
- die Version des letzten Commits im zu mergenden Branch.
Im Folgenden eine Illustration eines solchen Merges:
So funktioniert ein Drei-Wege-Merge:
- Git identifiziert die Änderungen, die auf jedem Branch 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
What is a merge conflict and how do I resolve it?
Can you explain the difference between fast-forward and three-way merges in more detail?
When should I use each type of merge in my workflow?
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 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
). Dies stellt sicher, dass die neuesten Funktionen und Fehlerbehebungen in den Haupt-Codebestand aufgenommen werden.
Grundlegender Merge-Workflow
Betrachten wir zunächst die beiden letzten Commits. Beachten Sie, dass wir uns aktuell auf dem Branch feature/new-feature
befinden.
Wie Sie sehen, ist unser Branch master
einen Commit hinterher. Bevor wir jedoch Änderungen zusammenführen, müssen wir zum Branch wechseln, in den wir die Änderungen integrieren möchten. Wechseln wir also zum Branch master
und zeigen die beiden letzten Commits auf diesem Branch an:
Der master
-Branch liegt tatsächlich einen Commit hinter dem feature-Branch, daher führen wir nun das Zusammenführen durch. Um den Merge-Prozess zu starten, sollte der Befehl git merge
verwendet und der Branch angegeben werden, der in den aktuellen Branch zusammengeführt werden soll. Um beispielsweise einen Feature-Branch namens feature/new-feature
in den master
-Branch zu mergen, sollte folgender Befehl ausgeführt werden:
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 betrachten wir jedoch die beiden letzten Commits:
Wir befinden uns weiterhin auf dem master
-Branch, jedoch ist dieser Branch nun auf dem aktuellen Stand mit unserem feature-Branch, wobei beide Branches auf denselben Commit verweisen.
Der HEAD verweist weiterhin auf den master
-Branch, da wir uns während des Mergings auf diesem Branch befanden.
Merge-Typen
Tatsächlich gibt es in Git zwei Arten von Merge-Operationen:
- Fast-Forward-Merge;
- Drei-Wege-Merge.
Fast-Forward-Merge
Der Merge, den wir durchgeführt haben, ist ein Beispiel für einen Fast-Forward-Merge, wie in der Meldung erwähnt. Diese Art von Merge wird durchgeführt, wenn alle Commits des Branches, auf dem wir uns aktuell befinden (ausgecheckter Branch), ebenfalls Teil des zu mergenden Branches sind. Das bedeutet, dass sich die Commit-Historien dieser Branches nicht unterscheiden. Schauen wir uns zur Verdeutlichung die folgende Abbildung an:
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 Vorfahren (Commit);
- die Version des letzten Commits im aktuellen Branch (HEAD);
- die Version des letzten Commits im zu mergenden Branch.
Im Folgenden eine Illustration eines solchen Merges:
So funktioniert ein Drei-Wege-Merge:
- Git identifiziert die Änderungen, die auf jedem Branch 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!