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

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
Die zwei neuesten Commits auf dem Feature-Branch

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
Wechsel zum master-Branch und Anzeige der zwei neuesten Commits

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
Zusammenführen
Note
Hinweis

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
Zwei neueste Commits nach dem Merge

Sie befinden sich weiterhin auf dem master-Branch, aber dieser ist jetzt mit dem feature-Branch synchronisiert, wobei beide Branches auf denselben Commit zeigen.

Note
Hinweis

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:

  1. Git identifiziert die Änderungen, die auf jedem der Branches nach dem jüngsten gemeinsamen Vorfahren vorgenommen wurden;
  2. 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;
  3. Andernfalls tritt ein Merge-Konflikt auf.
question mark

Wählen Sie alle Merge-Typen aus.

Wählen Sie alle richtigen Antworten aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 4. Kapitel 4
some-alt