Skip to main content

Pull Requests lokal auschecken

Wenn dir jemand einen Pull Request aus einem Fork oder Branch deines Repositorys schickt, kannst du ihn lokal zusammenführen, um einen Mergekonflikt zu lösen oder die Änderungen vor dem Zusammenführen auf GitHub zu testen und zu überprüfen.

Wer kann dieses Feature verwenden?

Anyone with write access to a repository can pull a remote pull request down locally.

Platform navigation

Tool navigation

Hinweis: Nur die Ersteller von Pull Requests können Betreuern von Upstreamrepositorys oder Benutzern mit Pushzugriff auf das Upstreamrepository die Berechtigung erteilen, in einem benutzereigenen Fork Commits für den Vergleichsbranch ihres Pull Requests vorzunehmen. Weitere Informationen findest du unter Änderungen an einem Pull-Request-Branch zulassen, der von einem Fork erstellt wurde.

Einen aktiven Pull Request lokal ändern

  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 der Pull Requests auf den Pull Request, den du ändern möchtest.

  3. Wenn du auswählen möchtest, wo der Pull Request geöffnet werden soll, wähle die Dropdownliste -Code aus, und klicke auf eine der Registerkarten.

    Screenshot: Titel eines Pull Requests Eine Schaltfläche mit einem Pfeil, der auf ein Dropdownmenü mit der Bezeichnung „Code“ hinweist, ist dunkelorange umrandet.

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

Um einen Pull Request lokal auszuchecken, verwende den Unterbefehl gh pr checkout. Ersetze pull-request durch die Nummer, die URL oder den HEAD-Branch des Pull Requests.

gh pr checkout PULL-REQUEST

Einen inaktiven Pull Request lokal ändern

Wenn der Ersteller bzw. die Erstellerin eines Pull Request nicht auf Anforderungen reagiert oder den Fork gelöscht hat, können die in diesem Pull Request vorgeschlagenen Änderungen weiterhin über einen neuen Pull Request zusammengeführt werden. Wenn du jedoch einen Pull Request ändern willst und der Autor nicht antwortet, musst du einige zusätzliche Schritte durchführen, um den Pull Request zu aktualisieren.

Sobald ein Pull-Request geöffnet ist, werden alle Änderungen von GitHub remote gespeichert. Anders gesagt sind Commits in einem Pull Request schon in einem Repository verfügbar, noch bevor der Pull Request zusammengeführt wird. Du kannst einen offenen Pull Request abrufen und als deinen eigenen neu erstellen.

Jeder kann einen zuvor geöffneten Pull Request weiter bearbeiten, testen oder sogar einen neuen Pull Request mit zusätzlichen Änderungen öffnen. Aber nur Mitarbeiter mit Push-Zugriff können Pull Requests zusammenführen.

  1. Klicke unter dem Namen deines Repositorys auf „-Issues“ oder „-Pull Requests“.

    Screenshot der Hauptseite eines Repositorys. In der horizontalen Navigationsleiste sind zwei Registerkarten mit der Bezeichnung „Issues“ und „Pull Requests“ jeweils dunkelorange umrandet.

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

  3. Ermittle die ID-Nummer des inaktiven Pull Requests. Die ID ist die Ziffernfolge direkt hinter dem Titel des Pull Requests.

    Screenshot des Titels eines Pull Requests Die ID-Nummer des Pull Requests ist dunkelorange umrissen.

  4. Öffne TerminalTerminalGit Bash.

  5. Rufe den Verweis zum Pull Request basierend auf seiner ID-Nummer ab, und erstelle dabei einen neuen Branch.

    git fetch origin pull/ID/head:BRANCH_NAME
    
  6. Wechsle zu dem neuen Branch, der auf diesem Pull Request basiert:

    [main] $ git switch BRANCH_NAME
    > Switched to a new branch 'BRANCH_NAME'
    
  7. An diesem Punkt kannst Du mit diesem Branch machen, was Du möchtest. Du kannst einige lokale Tests ausführen oder andere Branches in den Branch mergen.

  8. Wenn du fertig bist, kannst du den neuen Branch nach oben übertragen:

    [pull-inactive-pull-request] $ git push origin BRANCH_NAME
    > Counting objects: 32, done.
    > Delta compression using up to 8 threads.
    > Compressing objects: 100% (26/26), done.
    > Writing objects: 100% (29/29), 74.94 KiB | 0 bytes/s, done.
    > Total 29 (delta 8), reused 0 (delta 0)
    > To https://github.com/USERNAME/REPOSITORY.git
    >  * [new branch]      BRANCH_NAME -> BRANCH_NAME
    
  9. Erstelle einen neuen Pull Request mit deinem neuen Branch.

Fehler: Pushen einiger Refs fehlgeschlagen

Der Remotenamespace refs/pull/ ist schreibgeschützt. Wenn du versuchst, Commits dorthin zu übertragen, wird die folgende Fehlermeldung angezeigt:

! [remote rejected] HEAD -> refs/pull/1/head (deny updating a hidden ref)
error: failed to push some refs to 'git@github.local:USERNAME/REPOSITORY.git'

Tipp: Wenn du einen Remoteverweis entfernst oder umbenennst, ist dein lokaler refs/pull/origin/-Namespace von Aufrufen an git-remote nicht betroffen.