Zum Inhalt springen
GitTree
Git-Anleitungen5 Min. gelesen

So führen Sie einen Git-Zweig mit einem anderen zusammen

Das Zusammenführen erfordert zwei Befehle, aber die Richtung bringt die Leute aus der Fassung, und Git kann schnell vorspulen oder einen Zusammenführungs-Commit erstellen. Hier ist die genaue Reihenfolge, was Schnellvorlauf bedeutet und welche Option wann verwendet werden sollte.

Geschrieben von Kodmora

Das Softwarehaus hinter GitTree

Veröffentlicht Aktualisiert
  • Zusammenführen
  • Zweige
  • Konflikte zusammenführen
Auf dieser Seite

Um `feature` in `main` zusammenzuführen, wechseln Sie zu dem Zweig, der die Commits empfängt, und führen Sie dann den anderen Zweig zusammen: `git switch main` gefolgt von `git merge feature`. Der Zweig, in dem Sie sich befinden, ist derjenige, der sich ändert. Wenn main keine neuen Commits hat, spult Git sie schnell vor. Andernfalls wird ein Zusammenführungs-Commit erstellt und angehalten, wenn die beiden Seiten in Konflikt geraten.

Wie füge ich einen Zweig Schritt für Schritt zusammen?

# get the latest
git fetch origin

# go to the branch that receives the work
git switch main
git pull --ff-only

# bring the other branch in
git merge feature/search

# publish it
git push

Beginnen Sie mit einem sauberen Baum: Zuerst committen oder stashen. Wenn Sie Ihre Meinung zwischenzeitlich ändern, bringt Sie `git merge --abort` zurück.

In welche Richtung geht eine Zusammenführung?

git merge X bedeutet immer „X in den Zweig bringen, in dem ich bin“. Das Zusammenführen von feature in main erfolgt also von main aus, während die Aktualisierung von feature mit dem neuesten main von feature aus erfolgt:

# keep a feature branch up to date
git switch feature/search
git fetch origin
git merge origin/main

Was ist eine Fast-Forward-Merge?

Wenn der empfangende Zweig keine eigenen Commits mehr hat, seit der andere Zweig ihn verlassen hat, gibt es nichts zu kombinieren. Git verschiebt den Branch-Zeiger vorwärts zum letzten Commit des anderen Branchs und fügt keinen Merge-Commit hinzu. Die Geschichte bleibt eine gerade Linie. Git gibt in diesem Fall Fast-forward aus.

# before
main:    A---B
              \
feature:       C---D

# after a fast-forward merge
main:    A---B---C---D

Wenn beide Zweige neue Commits haben, ist ein schneller Vorlauf nicht möglich, daher führt Git einen Merge-Commit mit zwei übergeordneten Zweigen durch. Die Schnellvorlauf-Lektion und die Lektion zum Zusammenführen divergenter Zweige zeigen beide in der Praxis.

Was machen --ff-only, --no-ff und --squash?

Wie Git Merge das Ergebnis aufzeichnen kann
OptionErgebnisVerwenden Sie es wann
(keine)Wenn möglich, schnell vorspulen, andernfalls ein Merge-CommitDie meisten alltäglichen Zusammenschlüsse
--ff-onlySchneller Vorlauf oder Stopp mit einem Fehlermain wird vom Remote aus aktualisiert
--no-ffImmer ein Merge-CommitSie möchten, dass jedes Feature im Verlauf sichtbar ist
--squashAlle Änderungen werden bereitgestellt, kein Commit, keine Zusammenführung aufgezeichnetSie möchten einen ordentlichen Commit
git merge --ff-only origin/main
git merge --no-ff feature/search

git merge --squash feature/search
git commit -m "feat(search): quick open"

Was passiert, wenn es bei der Zusammenführung zu Konflikten kommt?

Git stoppt und markiert die in Konflikt stehenden Dateien. Bearbeiten Sie sie, jeweils git add, und führen Sie dann git commit aus, um die Zusammenführung abzuschließen. So lösen Sie Zusammenführungskonflikte erklärt die Markierungen.

Kann ich automatisch eine Seite übernehmen?

# take their side wherever hunks conflict
git merge -X theirs feature/search

# take our side wherever hunks conflict
git merge -X ours feature/search

# during a merge, take one side of a whole file
git checkout --theirs path/to/file
git add path/to/file

Soll ich zusammenführen oder umbasieren?

Merge behält den Verlauf genau so bei, wie er passiert ist, und schreibt niemals Commits neu, sodass es in gemeinsam genutzten Zweigen immer sicher ist. Rebase gibt Ihre Commits auf einem anderen Zweig für eine gerade Linie wieder, schreibt sie jedoch neu, also behalten Sie es bei den Zweigen bei, die nur Sie verwenden. Die Merge-versus-Rebase-Lektion geht die Kompromisse durch.

Was soll ich nach der Zusammenführung tun?

# check that the branch is fully merged
git branch --merged

# delete it locally and on the remote
git branch -d feature/search
git push origin --delete feature/search

So löschen Sie einen Zweig behandelt die Bereinigung. Informationen zum Zurücksetzen einer bereits gepushten Zusammenführung finden Sie unter Wie man einen Zusammenführungs-Commit rückgängig macht.

So führen Sie einen Zweig in GitTree zusammen

  1. Wechseln Sie zum empfangenden Zweig

    Doppelklicken Sie auf den Zweig, der die Commits empfangen soll, z. B. develop.

  2. Wählen Sie den Zweig aus, den Sie zusammenführen möchten

    Klicken Sie mit der rechten Maustaste auf die Bezeichnung des Zweigs mit dem neuen Werk und wählen Sie Zusammenführen … in …. Sie können auch eine Beschriftung auf die andere ziehen.

  3. Lesen Sie die Vorschau

    GitTree prüft zuerst und teilt Ihnen mit, ob Zusammenführungen ohne Konflikte erfolgen. oder welche Dateien mit einem Konflikt beendet werden.

  4. Wählen Sie, wie es aufgezeichnet wird

    Wählen Sie unter Aufzeichnen als die Option Schneller Vorlauf, wenn möglich, andernfalls ein Zusammenführungs-Commit, Immer ein Zusammenführungs-Commit, Nur schneller Vorlauf oder In gestaffelte Änderungen komprimieren (kein Commit) und klicken Sie dann auf Zusammenführen.

Funktion/Suche wird in GitTree mit der Konfliktprüfung zusammengeführt, bevor sich etwas ändert.
Funktion/Suche wird in GitTree mit der Konfliktprüfung zusammengeführt, bevor sich etwas ändert.GitTree-Schnittstelle mit einem Demonstrations-Repository.

Siehe Zweige zusammenführen für jede Option.

Häufig gestellte Fragen

Löscht die Zusammenführung den anderen Zweig?

Nein. Der andere Zweig bleibt genau dort, wo er war. Löschen Sie es selbst, wenn Sie es nicht mehr benötigen.

Wie füge ich einen Zweig mit dem Hauptzweig auf GitHub zusammen?

Öffnen Sie eine Pull-Anfrage und klicken Sie auf Zusammenführen. Wenn Sie stattdessen lokal zusammenführen, drücken Sie anschließend main. Der Zweigschutz erfordert möglicherweise die Pull-Request-Route.

Was bedeutet „Bereits auf dem neuesten Stand“?

Der Zweig, in dem Sie sich befinden, enthält bereits alle Commits des anderen Zweigs, sodass nichts zusammengeführt werden muss. Überprüfen Sie, ob Sie sich im richtigen Zweig befinden, und führen Sie git fetch aus, wenn Sie neue Remote-Commits erwarten.

Was bedeutet „die Weigerung, nicht zusammenhängende Geschichten zusammenzuführen“?

Die beiden Zweige haben kein gemeinsames Commit, häufig weil ein Repository zweimal initialisiert wurde. Wenn Sie ihnen wirklich beitreten möchten, fügen Sie --allow-unrelated-histories hinzu.

Ist ein Squash-Merge ein echter Merge?

Ein Squash stellt die kombinierten Änderungen bereit, ohne einen Commit oder eine Merge-Verbindung in der Historie anzulegen. Du erstellst den Commit selbst. Auch danach gilt der Quell-Branch für Git nicht als gemergt, weshalb git branch -d das Löschen ablehnen kann.

Quellen

Behauptungen zu anderen Produkten wurden anhand der offiziellen Seiten auf 8. November 2026 überprüft. Preise und Ausstattung ändern sich; Die Seiten der Anbieter sind die Quelle der Wahrheit.