Ich muss eine bestimmte Pull-Anfrage (die noch nicht in den Hauptstrom verarbeitet wurde) im NServiceBus-Repo ziehen:
https://github.com/johnsimons/NServiceBus/commit/d8524d53094e8181716e771c1023e968132abc15
Es ist offensichtlich nicht mein Repo, aber ich brauche die Änderungen, die in dieser Pull-Anfrage vorhanden sind.
Was ist der beste Weg, dies zu tun?
git
github
git-pull
pull-request
TRiG
quelle
quelle
Antworten:
So holen Sie einen Pull in Ihr Repository:
Dann machen Sie mit FETCH_HEAD, was Sie wollen:
quelle
fatal: Couldn't find remote ref refs/pull/1041/head
. = /[email protected]:jboss/jboss-common-beans.git
als Fernbedienung einstellenupstream
und danngit fetch upstream refs/pull/4/head
Oder
Kann ich eine noch nicht zusammengeführte Pull-Anfrage ziehen?
quelle
git pull
Sie in Ihrem aktuellen Zweig bleiben und die PR-Änderungen zusammenführen, während Siegit fetch/checkout
einfach in den PR-Zweig wechseln.Du kannst das:
1) Fügen Sie die Upstream-Fernbedienung hinzu:
2) Danach können Sie jede Pull-Anfrage an einen neuen Zweig anhand seiner ID auschecken:
Dann haben Sie einen Zweig
NEW_BRANCH_NAME
mit dem Namen , der den PR-Code enthält.Hinzufügen eines Alias:
Wenn Sie dies so oft wie ich tun, möchten Sie möglicherweise einige Aliase dafür einrichten . Ich habe dies in meiner .gitconfig:
Mit dem oben genannten kann ich tun:
quelle
In schwierigen Situationen (insbesondere wenn Sie kein ausgechecktes Git-Repo haben) ist es meiner Meinung nach am einfachsten, einen Patch anzuwenden. Öffnen Sie dazu einfach die Pull-Anfrage auf github und fügen Sie der URL ein ".patch" hinzu, laden Sie es herunter und wenden Sie den Patch an.
Beispiel:
quelle
Siehe diesen Hilfeartikel von GitHub: https://help.github.com/articles/checking-out-pull-requests-locally
quelle
Github / Hub
https://github.com/github/hub ist ein GitHub-CLI-Helfer, der diesen und andere Anwendungsfälle mithilfe zusätzlicher Informationen aus der GitHub-API auf wunderbare Weise behandelt. Z.B:
Ergebnis:
Wir befinden uns jetzt in einem Zweig namens
<USERID>-<BRANCH_NAME>
PR.Beachten Sie den guten Filialnamen, der automatisch für uns festgelegt wurde.
Dieser Zweig ist so eingestellt, dass er den ursprünglichen Zweig auf der Gabelung verfolgt, dh
.git/config
enthält:Wenn also weitere Commits gepusht werden, können wir
git fetch
sie direkt durchführen.Die Installation
hub
unter Linux ist derzeit schwierig, wenn Sie nicht mit Go vertraut sind, es sich aber lohnt. Unter Ubuntu 14.04 ist Go on the Repositories zu alt, daher ist GVM die beste Option:Ich habe GitHub auch gebeten, uns ein Cheatsheet zum Kopieren und Einfügen auf der Web-Benutzeroberfläche unter https://github.com/isaacs/github/issues/449 zu geben
quelle
refs/heads/ticket/NN
? Ich habe diesen magischen Schiedsrichter noch nie gesehenpull/NN/head
(dashub
hat mir derzeit gegeben) &pull/NN/merge
. nur neugierig ..."<USERID>-<BRANCH_NAME>"
, aber den gleichen Filialnamen wie der Filialname des PR, ohne Benutzer-ID.Sobald Sie das Upstream-Repo als Upstream-Remote hinzugefügt haben (wie @elias hervorhob):
Sie können git so konfigurieren, dass Pull-Anforderungen standardmäßig abgerufen werden:
Also, lass es uns holen:
Und probieren Sie es aus:
quelle
Hier sind die Befehle, die für mich funktioniert haben.
Ich gehe davon aus, dass man bereits ein Repo (zB Pytorch ) lokal auf sein System geklont hat . Danach hat ein Freiwilliger / Enthusiast einen Code beigesteuert und eine PR für das Remote-Repository ausgegeben, die jedoch noch nicht mit dem Master oder einem anderen Zweig zusammengeführt wurde. Damit,
Zuerst müssen wir
git remote add
das Github-Remote-Repository bearbeiten:Dann
cd
in das Repositorypytorch
und dann einfach:Jetzt wurde der ausstehende PR in Ihr lokales Repo abgerufen, und die Spitze Ihres Abrufs befindet sich in FETCH_HEAD. Wenn Sie diese ausstehende PR lokal zusammenführen möchten, gehen Sie einfach wie folgt vor:
Wenn Sie danach:
Sie sollten sehen können, dass das lokale Repo
n
Commits voraus ist , die Teil der ausstehenden PR waren (dh es ist möglich, mehr als 1 Commit in einer einzelnen PR auszugeben). Die Anzahl der Commits hängt also von den Commits ab, die in der ausstehenden PR enthalten sind.quelle
Im Folgenden wird der Befehl 'git fetch' ausgeführt, um alle Pull-Anforderungen abzurufen, wenn "git fetch" ausgeführt wird.
füge unten in ~ / .gitconfig hinzu
Beachten Sie, dass die Referenz "refs / pull-request /" die Stash-Namenskonvention hat. Für Git Hub benötigen Sie möglicherweise ein anderes Format
quelle
Wenn Sie nur eine nicht zusammengeführte Pull-Anfrage von einem anderen Repo zu Ihrem eigenen hinzufügen möchten, sind nicht alle Komplikationen erforderlich (wie meistens in anderen Antworten gezeigt).
Gehen Sie stattdessen einfach in Ihr eigenes Repo und ziehen Sie das Commit (aus der PR-Quelle) mit seinem Commit-Hash ein.
Auf diese Weise erhalten Sie nur eine Reihe neuer bearbeiteter Dateien, als hätten Sie sie selbst bearbeitet. Es ist dann an Sie , wenn Sie wollen begehen diese mit einem gewissen Tag / Label.
Wenn Sie dann alle Nachrichten auf Ihr eigenes GitHub-Repo übertragen möchten, gehen Sie wie immer vor:
git commit -m "Added something by Anonymous" git push -u origin master
quelle
Github hat ein klares Dokument zum Zusammenführen der Pull-Anfrage in ein lokales Repo:
https://help.github.com/de/articles/checking-out-pull-requests-locally
Es läuft darauf hinaus zu wissen, dass eine Pull-Anfrage in GitHub nur eine Verzweigung im Basis-Repo ist, wobei der Verzweigungsname eine Sequenznummer ist. Der obige Artikel zeigt Ihnen, wie Sie diese Nummer und die Magie der Git-Befehlszeile finden, um sie mit dem gewünschten Filialnamen in Ihr lokales Repo zu ziehen.
Ich konnte keinen ähnlich einfachen Weg finden, um die Pull-Anfrage in einem Fork zusammenzuführen, den ich auf GitHub erstellt habe.
quelle
Ich habe diese Lösung für dieses Problem gefunden - Änderungen von nicht zusammengeführter PR auf einem anderen Computer abrufen. Ich habe die folgenden Schritte in Git Bash 1 ausgeführt. Sie müssen den Klon des Remote-Repositorys auf Computer 2 erstellt haben. 2. Führen Sie eine Git-Prüfung durch (Zweig, auf dem PR generiert wurde). 3. Mach Git Pull und fertig !!!!!!!!!!!!!!
quelle
Dies ist die Lösung aus GitHub-Dokumenten:
Überprüfen Sie in Ihrem Projekt-Repository einen neuen Zweig und testen Sie die Änderungen.
Wo:
GithubUserID
ist der Benutzername der Person, die die Pull-Anfrage geöffnet hat.branchName
ist der Name des Zweigs, zum Beispiel Masterreponame
Der Repository-Name wie Demo-ToDoBeispiel:
quelle