Skip to main content

Einen Pull Request zusammenführen

Führe einen Pull Request in den vorgelagerten Branch zusammen, wenn die Arbeit abgeschlossen ist. Jede Person mit Push-Zugriff auf das Repository kann den Merge abschließen.

Tool navigation

Informationen zum Zusammenführen von Pull Requests

Mit einem Pull Request schlägst Du vor, dass Änderungen, die Du an einem Head-Branch gemacht hast, in einen Basis-Branch zusammengeführt werden sollten. Standardmäßig kann jeder Pull Request jederzeit zusammengeführt werden, es sei denn, der Head-Branch steht in Konflikt mit dem Basisbranch. Eventuell gibt es jedoch Einschränkungen bezüglich wann du ein Pull Request in einen bestimmten Branch mergen kannst. So kannst du einen Pull Request beispielsweise nur in den Standardbranch mergen, wenn alle erforderlichen Statuschecks bestanden wurden. Repositoryadministrator*innen können Branches Einschränkungen wie diese hinzufügen, indem sie Branchschutzregeln verwenden. Weitere Informationen findest du unter Informationen zu geschützten Branches.

Alternativ zu Verzweigungsschutzregeln oder den Tagschutz können Sie auch Regelsätze erstellen. Regelsätze haben einige Vorteile gegenüber Verzweigungs- und Tag-Schutzregeln, wie z. B. Status und bessere Auffindbarkeit, ohne dass ein Admin-Zugang erforderlich ist. Sie können auch mehrere Regelsätze gleichzeitig anwenden. Weitere Informationen findest du unter Informationen zu Regelsätzen.

Du kannst einen Pull Request konfigurieren, um automatisch zusammenzuführen, wenn alle Zusammenführungsanforderungen erfüllt sind. Weitere Informationen findest du unter Automatisches Zusammenführen eines Pull Requests.

Wenn bei dem Pull Request Mergekonflikte auftreten oder du die Änderungen vor dem Mergen testen möchtest, kannst du den Pull Request lokal auschecken und ihn mit der Befehlszeile mergen.

Pull-Request-Entwürfe kannst du nicht zusammenführen. Weitere Informationen zu Pull Requests-Entwürfen findest du unter Informationen zu Pull Requests.

Dein Repository könnte so konfiguriert sein, dass der Headbranch eines Pull Requests automatisch gelöscht wird, wenn du ein Pull Request mergest. Weitere Informationen findest du unter Automatische Löschung von Branches verwalten.

Hinweis: Wenn du einen Haupt-Branch löschst, nachdem sein Pull Request zusammengeführt wurde, wird GitHub auf offene Pull Requests für das gleiche Repository prüfen, die den gelöschten Branch als ihren Basis-Branch angeben. GitHub aktualisiert solche Pull Requests automatisch, indem es deren Basis-Branch auf den Basis-Branch des zusammengeführten Pull Requests ändert. Weitere Informationen findest du unter Informationen zu Branches.

Pull Requests werden mithilfe der --no-ff-Option zusammengeführt, außer Pull Requests mit Squashcommits oder Commits, für die ein Rebase ausgeführt wurde. Diese werden mit der Fast-Forward-Option zusammengeführt.

Du kannst einen Pull Request mit einem Issue verknüpfen, um zu zeigen, dass ein Fix in Arbeit ist und das Issue automatisch zu schließen, wenn jemand den Pull Request mergt. Weitere Informationen findest du unter Einen Pull Request zu einem Issue verknüpfen.

Wenn du die Änderungen in einem Topic-Branch nicht in den Upstream-Branch mergen möchtest, kannst du ohne Mergen den Pull Request schließen.

Einen Pull Request zusammenführen

  1. Klicke unter dem Namen deines Repositorys auf -Pull Requests.

    Screenshot der Hauptseite eines Repositorys. In der horizontalen Navigationsleiste ist eine Registerkarte mit der Bezeichnung „Pull Requests“ dunkelorange umrandet.

  2. Klicke in der Liste „Pull Requests“ auf den Pull Request, den Du zusammenführen möchtest.

  3. Scrolle bis zum Ende des Pull Requests. Je nach den Merge-Optionen, die für Dein Repository aktiviert sind, stehen Dir folgende Möglichkeiten zur Verfügung:

    Hinweis: „Rebase ausführen und mergen“ sorgt immer dafür, dass die Committerinformationen aktualisiert und neue Commit-SHAs erstellt werden. Weitere Informationen findest du unter Informationen zum Mergen von Pull Requests.

  4. Wenn Du dazu aufgefordert wirst, gib eine Commit-Mitteilung ein oder akzeptiere die Standardmitteilung.

    Informationen zu den Standardcommitnachrichten für Squashmerges findest du unter Informationen zum Zusammenführen von Pull Requests.

  5. Wenn deinem Konto in GitHub.com mehrere E-Mail-Adressen zugeordnet sind, klicke auf das Dropdownmenü für E-Mail-Adressen, und wähle die Adresse aus, die als Git-Autor-Adresse für den verwendet werden soll. Nur verifizierte E-Mail-Adressen werden in diesem Dropdownmenü angezeigt. Wenn Sie den Datenschutz für E-Mail-Adressen aktiviert haben, ist die Commitautor-Standardadresse No-reply. Weitere Informationen zur genauen Form der No-reply-E-Mail-Adresse finden Sie unter „E-Mail-Adresse für Commits festlegen“.

    Screenshot eines GitHub-Pull Requests mit einem Dropdownmenü mit Optionen zum Auswählen der Commit-E-Mail-Adresse des Autors. octocat@github.com ist ausgewählt.

    Hinweis: Die E-Mail-Auswahl ist nicht verfügbar für Rebasemerges, die keinen Mergecommit erstellen. Bei Squashmerges wird die E-Mail-Auswahl nur angezeigt, wenn du der Pull Request-Autor bist und deinem Konto mehrere E-Mail-Adressen zugeordnet sind.

  6. Klicke auf Merge bestätigen, Squash und Merge bestätigen oder Rebase und Merge bestätigen.

  7. Lösche optional den Branch. So bleibt die Liste der Branches in Deinem Repository ordentlich.

Weitere Informationen zur GitHub CLI findest du unter Informationen zur GitHub CLI.

Verwende den Unterbefehl gh pr merge, um einen Pull Request zu mergen. Ersetze pull-request durch die Nummer, die URL oder den HEAD-Branch des Pull Requests.

gh pr merge PULL-REQUEST

Folge den interaktiven Aufforderungen, um den Merge abzuschließen. Weitere Informationen zu den auswählbaren Mergemethoden findest du unter Informationen zum Zusammenführen von Pull Requests.

Alternativ kannst du Flags verwenden, um die interaktiven Aufforderungen zu überspringen. Dieser Befehl beispielsweise squasht die Commits mit der Commitmeldung „my squash commit“ in einen einzigen Commit, merget den Squashcommit in den Basebranch und löscht dann den lokalen und den Remotebranch.

gh pr merge 523 --squash --body "my squash commit" --delete-branch

Weitere Informationsquellen