Das Gist beschreibt, was passiert, wenn du ein git fetch durchführst:
Offensichtlich änderst du die Github-URL, um sie an die URL deines Projekts anzupassen. Es sieht dann so aus:
[remote "origin"]
url = git@github.com:joyent/node.git
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
fetch = +refs/heads/*:refs/remotes/origin/*
Beachte die Reihenfolge der fetch
Refspecs, wie in den Kommentaren von crashneb in seiner eigenen Antwort vorgeschlagen.
Falls nicht, das heißt, wenn du nicht die richtige Reihenfolge hast aufgrund eines:
git config --add remote.origin.fetch "+refs/pull/*/head:refs/remotes/origin/pr/*" ...
und dann vertraust darauf, dass der PR-Checkout automatisch den neuen lokalen Branch mit etwas wie git switch pr/1
einrichtet - dann könntest du Probleme bekommen, wenn der PR aktualisiert wird und du ihn einfach wieder mit git pull
holen willst.
Der branch.pr/1.merge
Konfigurationswert wird nicht korrekt sein.
Hole jetzt alle Pull Requests:
$ git fetch origin
From github.com:joyent/node
* [new ref] refs/pull/1000/head -> origin/pr/1000
* [new ref] refs/pull/1002/head -> origin/pr/1002
* [new ref] refs/pull/1004/head -> origin/pr/1004
* [new ref] refs/pull/1009/head -> origin/pr/1009
...
Um einen bestimmten Pull Request auszuchecken:
$ git checkout pr/999
Branch pr/999 set up to track remote branch pr/999 from origin.
Switched to a new branch 'pr/999'
Es gibt verschiedene Skripte in Issues 259, um diese Aufgabe zu automatisieren.
Das git-extras Projekt schlägt den Befehl git-pr
(implementiert in PR 262) vor
git-pr
(1) -- Checkt einen Pull Request lokal aus
SYNOPSIS
git-pr []
git-pr clean
BESCHREIBUNG
Erstellt einen lokalen Branch basierend auf einer GitHub-Pull-Request-Nummer und wechselt danach zu diesem Branch.
Der Name des Remotes, von dem zu fetchen ist. Standardmäßig origin
.
BEISPIELE
Dies holt den Pull Request 226
von origin
:
$ git pr 226
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 12 (delta 3), reused 9 (delta 3)
Unpacking objects: 100% (12/12), done.
From https://github.com/visionmedia/git-extras
* [new ref] refs/pull/226/head -> pr/226
Switched to branch 'pr/226'