Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Zweige Zusammenführen | Arbeiten mit Branches in Git
Git-Grundlagen
course content

Kursinhalt

Git-Grundlagen

Git-Grundlagen

1. Einführung in Git
2. Fortgeschrittenere Interaktion
3. Änderungen Rückgängig Machen
4. Arbeiten mit Branches in Git

book
Zweige Zusammenführen

Verständnis des Zusammenführens von Branches

In Git ist das Zusammenführen der Prozess, Ä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 Hauptcode integriert werden.

Grundlegender Merge-Workflow

Schauen wir uns zunächst die beiden letzten Commits an. Denken Sie daran, dass wir uns derzeit auf dem Branch feature/new-feature befinden.

Wie Sie sehen können, ist unser master-Branch einen Commit hinterher, jedoch müssen wir, bevor wir Änderungen zusammenführen, zum Branch wechseln, in dem wir die Änderungen einfügen möchten. Wechseln wir zum master-Branch und zeigen die beiden neuesten Commits auf diesem Branch an:

Der master-Branch ist tatsächlich einen Commit hinter dem feature-Branch, also lassen Sie uns sie zusammenführen. Um den Zusammenführungsprozess zu starten, sollten wir den Befehl git merge verwenden und den Branch angeben, den wir in den aktuellen Branch zusammenführen möchten. Zum Beispiel, um einen Feature-Branch namens feature/new-feature in den master-Branch zusammenzuführen, sollten wir den folgenden Befehl ausführen:

Hinweis

Die Nachricht, die nach dem Ausführen des Befehls angezeigt wird, enthält Folgendes: Fast-forward, was angibt, dass der fast-forward-Merge durchgeführt wurde.

Wir werden die beiden Arten von Merges später in diesem Kapitel besprechen, aber bevor wir das tun, werfen wir einen Blick auf die beiden letzten Commits:

Wir befinden uns immer noch auf dem master-Branch, jedoch ist dieser Branch jetzt mit unserem feature-Branch auf dem neuesten Stand, wobei beide Branches auf denselben Commit zeigen.

Hinweis

Der HEAD zeigt immer noch auf den master-Branch, da wir uns auf diesem Branch befanden, als wir den Merge durchgeführt haben.

Merge-Typen

Tatsächlich gibt es zwei Arten von Merge-Operationen in Git:

  • Fast-Forward-Merge;
  • Drei-Wege-Merge.

Fast-Forward-Merge

Der von uns durchgeführte Merge ist ein Beispiel für einen Fast-Forward-Merge, wie in der Nachricht erwähnt. Diese Art von Merge wird durchgeführt, wenn alle Commits eines Branches, auf dem wir uns derzeit befinden (ausgecheckter Branch), auch Teil des zu mergenden Branches sind, was bedeutet, dass sich der Commit-Verlauf dieser Branches nicht verzweigt. Schauen wir uns die folgende Abbildung an, um dies zu verdeutlichen:

Bei dieser Art von Merge wird der Zeiger des ausgecheckten Branches einfach auf den neuesten Commit aktualisiert.

Drei-Wege-Merge

Wenn jedoch die Historie der Branches auseinandergegangen ist, was bedeutet, dass nach einem bestimmten gemeinsamen Commit neue Commits separat auf jedem Branch gemacht wurden, 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 neuesten Commits im aktuellen Branch (HEAD);
  • die Version des neuesten Commits im zu mergeenden Branch.

Schauen wir uns die folgende Illustration eines solchen Merges an:

So funktioniert ein Drei-Wege-Merge:

  1. Git identifiziert die Änderungen, die an jedem der Zweige nach dem jüngsten gemeinsamen Vorfahren vorgenommen wurden;

  2. Wenn jeder Zweig Änderungen in verschiedenen Dateien oder in verschiedenen Teilen derselben Datei hat, wird Git die Änderungen automatisch zusammenführen, indem es sie im resultierenden Commit kombiniert;

  3. Andernfalls tritt ein Merge-Konflikt auf.

Wir werden Merge-Konflikte im folgenden Kapitel besprechen.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
We're sorry to hear that something went wrong. What happened?
some-alt