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 AE zu testen und zu überprüfen.

Who can use this feature

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

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 Zulassen von Änderungen an einem Pull Request-Branch, der aus einem Fork erstellt wurde.

Einen aktiven Pull Request lokal ändern

  1. Klicke unter dem Namen deines Repositorys auf Pull Requests. Auswählen der Registerkarte für Pull Requests
  2. Klicke in der Liste der Pull Requests auf den Pull Request, den du ändern möchtest.
  3. Klicke im Mergefeld auf Befehlszeilenanweisungen. Führe nacheinander die folgenden Schritte durch, um den vorgeschlagenen Pull Request herunterzuladen. Link zum Zugriff auf Befehlszeilenanweisungen für Pull Requests
  4. Optional: Wenn du die vorgeschlagenen Änderungen in GitHub Desktop ansehen möchtest, klicke auf Dies in GitHub Desktop öffnen. Links zum Öffnen eines Pull Requests auf dem lokalen Desktop

Weitere Informationen zu GitHub CLI findest du unter Informationen zu 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 Autor eines Pull Requests auf Anfragen nicht reagiert oder seine Fork gelöscht hat, kann der Pull-Request trotzdem noch 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 AE 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. Auswahl auf den Registerkarten „Issues“ und Pull Requests“
  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. ID-Nummer des Pull Requests 1. Öffne TerminalTerminalGit Bash.
  4. Rufe den Verweis zum Pull Request basierend auf seiner ID-Nummer ab, und erstelle dabei einen neuen Branch.
    $ git fetch origin pull/ID/head:BRANCHNAME
  5. Wechsle zu dem neuen Branch, der auf diesem Pull Request basiert:
    [main] $ git checkout BRANCHNAME
    > Switched to a new branch 'BRANCHNAME'
  6. 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.
  7. Wenn du fertig bist, kannst du den neuen Branch nach oben übertragen:
    [pull-inactive-pull-request] $ git push origin BRANCHNAME
    > 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://Hostname/username/repository.git
    >  * [new branch]      BRANCHNAME -> BRANCHNAME
  8. 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.