Artikelversion: GitHub.com
Informationen zum Zusammenführen von Pull Requests
Du kannst Pull Requests zusammenführen, indem Du alle Commits in einem Feature-Branch beibehältst, alle Commits in einen einzigen Commit squashst oder ein Rebasing einzelner Commits vom Head-Branch auf den Basis-Branch durchführst.
Inhalt dieses Artikels
- Deine Pull-Request-Commits squashen und zusammenführen
- Rebase und Merge Deiner Pull-Request-Commits durchführen
- Weiterführende Informationen
Were you able to find what you were looking for?
Thank you! Your feedback has been submitted.
Wenn Du in einem Pull Request auf GitHub auf die standardmäßige Option Merge pull request (Pull Request zusammenführen) klickst, werden alle Commits aus dem Feature-Branch zum Basisbranch in einem Merge-Commit hinzugefügt. Der Pull Request wird mithilfe der Option --no-ff zusammengeführt.
Zum Zusammenführen von Pull Requests musst Du über Schreibberechtigungen im Repository verfügen.

Deine Pull-Request-Commits squashen und zusammenführen
Wenn Du die Option Squash and merge (Squash und Merge) in einer Abrufanfrage auf GitHub auswählst, werden die Commits der Abrufanfrage in einen einzelnen Commit gesquasht. Anstatt dass alle einzelnen Commits eines Mitarbeiters aus einem Themen-Branch angezeigt werden, werden die Commits in einem Commit kombiniert und in den Standardbranch zusammengeführt. Pull Requests mit gesquashten Commits werden mithilfe der Fast-Forward-Option zusammengeführt.
Zum Squashen und Mergen von Pull Requests musst Du im Repository über Schreibberechtigungen verfügen. Zudem muss im Repository Squash-Zusammenführung zulässig sein.

Mittels Squash und Merge kannst Du einen optimierteren Git-Verlauf in Deinem Repository erstellen. In Arbeit befindliche Commits sind hilfreich, wenn Du auf einem Feature-Branch arbeitest, sie müssen aber nicht unbedingt im Git-Verlauf beibehalten werden. Wenn Du diese Commits während dem Merge zum Standardbranch in einen Commit zusammenführst (squashen), kannst Du die ursprünglichen Änderungen in einem leeren Git-Verlauf beibehalten.
Rebase und Merge Deiner Pull-Request-Commits durchführen
Wenn Du die Option Rebase and merge (Rebase und Merge) für einen Pull Request auf GitHub auswählst, werden alle Commits vom Themen-Branch (oder Head-Branch) ohne einen Merge-Commit einzeln auf dem Basisbranch hinzugefügt. Pull Requests mit Rebased-Commits werden mithilfe der Fast-Forward-Option zusammengeführt.
Für das Rebasing und Mergen von Pull Requests musst Du im Repository über Schreibberechtigungen verfügen. Zudem muss das Repository Rebase-Merging zulassen.
Das Rebase- und Merge-Verhalten auf GitHub weicht etwas von git rebase ab. Rebase und Merge auf GitHub aktualisiert jederzeit die Informationen zum Beitragenden und erstellt neue Commit-SHAs. Demgegenüber ändert git rebase außerhalb von GitHub nicht die Informationen zum Beitragenden, wenn das Rebasing zusätzlich zu einem Vorgänger-Commit erfolgt. Weitere Informationen zu git rebase findest Du im Kapitel zu „Git rebase“ im Pro Git-Buch.
Eine visuelle Darstellung von git rebase findest Du im Kapitel „Git-Branching - Rebasing“ im Pro Git-Buch.
In folgenden Fällen ist kein automatisches Rebasing und Zusammenführen auf GitHub möglich:
- Für den Pull Request liegen Mergekonflikte vor.
- Beim Rebasing der Commits vom Basis-Branch in den Head-Branch kommt es zu Konflikten.
- Das Rebasing der Commits gilt als „unsicher“, beispielsweise wenn ein Rebase ohne Mergekonflikte möglich ist, jedoch ein anderes Ergebnis liefern würde als ein Merge.
Wenn Du trotzdem ein Rebasing der Commits durchführen möchtest, aber kein automatischer Rebase auf GitHub möglich ist, musst Du folgendermaßen vorgehen:
- Führe ein Rebasing des Themen-Branches (oder Head-Branches) auf den Basis-Branch lokal in der Befehlszeile durch.
- Behebe Mergekonflikte in der Befehlszeile.
- Erzwinge den Push der Rebase-Commits an den Themen-Branch (oder Remote-Head-Branch) des Pull Requests.
Alle Benutzer mit Schreibberechtigungen im Repository können dann über die Rebase- und Merge-Schaltfläche auf GitHub die Änderungen zusammenführen .
Weiterführende Informationen
Were you able to find what you were looking for?
Thank you! Your feedback has been submitted.