Pull Requests lokal auschecken
Wenn Ihnen jemand einen Pull Request von einem Fork oder Branch Ihres Repositorys sendet, möchten Sie den Pull Request möglicherweise lokal mergen, um einen Mergekonflikt zu beheben oder die Änderungen vor dem Mergen auf GitHub auf Ihrem lokalen Computer zu testen.
Hinweis: Sie können die Person, die den Pull Request erstellt hat, darum bitten, es allen Benutzern mit Push-Zugriff auf das vorgelagerte Repository zu erlauben, Commits zu ihrem Pull Request zu pushen, damit sie ihre Arbeit schneller mergen können. Weitere Informationen finden Sie unter „Änderungen an einem Pull-Request-Branch zulassen, der von einem Fork erstellt wurde“.
Einen aktiven Pull Request lokal ändern
-
Under your repository name, click Pull requests.
-
Klicken Sie in der Liste der Pull Requests auf den Pull Request, den Sie mergen möchten.
-
Klicken Sie ziemlich unten im Pull Request im Merge-Feld auf command line instructions (Anleitungen für die Befehlszeile). Führen Sie nacheinander die Schritte durch, um den vorgeschlagenen Pull Request herunterzuladen.
-
Um die vorgeschlagenen Änderungen in GitHub Desktop anzuzeigen, können Sie optional auch auf open this in GitHub Desktop (In GitHub Desktop öffnen) klicken.
Einen inaktiven Pull Request lokal ändern
Ein inaktiver Pull Request ist ein Pull Request, dessen Inhaber nicht mehr antwortet oder, was wahrscheinlicher ist, seinen Fork gelöscht hat. Wenn ein Fork gelöscht wurde, ist das Mergen des Pull Requests noch möglich. Wenn Sie jedoch einen Pull Request ändern und der Autor nicht antwortet, müssen Sie einige zusätzliche Schritte durchführen, um den Pull Request zu aktualisieren.
Wenn ein Pull Request geöffnet wurde, speichert GitHub alle Änderungen online für Sie. Anders gesagt: Commits in einem Pull Request sind in einem Repository schon vor dem Mergen des Pull Requests verfügbar. Das bedeutet, dass Sie einen offenen Pull Request abrufen und als Ihren eigenen erneut erstellen können.
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 mergen.
-
Under your repository name, click Issues or Pull requests.
-
Klicken Sie in der Liste „Pull Requests“ auf den Pull Request, den Sie mergen möchten.
-
Ermitteln Sie die ID-Nummer des inaktiven Pull Requests. Die ID ist die Ziffernfolge direkt hinter dem Titel des Pull Requests.
-
Open TerminalTerminalGit Bashthe terminal.
-
Rufen Sie den Verweis zum Pull Request basierend auf seiner ID-Nummer ab, und erstellen Sie dabei einen neuen Branch.
$ git fetch origin pull/ID/head:BRANCHNAME
-
Switch to the new branch that's based on this pull request:
[master] $ git checkout BRANCHNAME> Switched to a new branch 'BRANCHNAME'
-
An dieser Stelle können Sie mit diesem Branch machen, was Sie möchten. You can run some local tests, or merge other branches into it, including
master
. Nehmen Sie alle gewünschten Änderungen vor. -
When you're ready, you can push the new branch up:
[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
-
Create a new pull request with your new branch.
Error: Failed to push some refs
The remote refs/pull/
namespace is read-only. If you try to push any commits there, you'll see this error:
! [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 Sie einen Remote-Verweis entfernen oder umbenennen, wirken sich Aufrufe von git-remote
nicht auf Ihren lokalen Namespace refs/pull/origin
aus.