Laden Sie die Github-Pull-Anfrage als einheitliches Diff herunter

276

Wie kann ich die in einer Github-Pull-Anfrage enthaltenen Änderungen als einheitliches Diff herunterladen?

Thilo
quelle
Normalerweise wird der PR-Patch-Link an die Person gesendet, die die PR akzeptiert.
Kenorb
Dies ist noch nicht in GitLab implementiert , aber ich habe eine Funktionsanforderung erstellt. Fügen Sie daher bitte Ihre Stimmen hinzu.
Colan

Antworten:

484

Um ein Commit als Diff / Patch-Datei anzuzeigen, fügen Sie einfach .diffoder .patcham Ende der URL hinzu, zum Beispiel:

Simone Carletti
quelle
13
Vielen Dank. Und das gibt es auch .patch. Warum wird dies in der GUI nicht angezeigt? Wie soll man das entdecken?
Thilo
44
Es ist nicht dokumentiert, dass der Stackoverflow im Geschäft bleibt. Ehrlich gesagt, das ist FAQ # 2
sehe
Auch weil git pullist die bevorzugte Methode zum Herunterladen und Anwenden der Änderungen.
Tekkub
Ooooh, danke, diese Antwort ist Gold wert. (Das Blogposting auch.) Ich frage mich, wie jeder gesunde Mensch ohne das arbeiten kann und warum es nicht in der beschissenen Web-Benutzeroberfläche angezeigt wird.
Mirabilos
8
Gemessen an der Rückgabe und den Links in den Dokumenten unter developer.github.com/v3/media/… gibt die .diffURL einen direkten Unterschied zum Standardzweig basierend auf der Ausgabe von git-diff git-scm.com/docs/git-diff . und die .patchURL gibt eine Verkettung der einzelnen Commits in der PR (jeweils relativ zu ihrem übergeordneten Commit) in einem Format an, das für das Versenden von E-Mails basierend auf der Ausgabe von git-format-patch git-scm.com/docs/git-format-patch geeignet ist .
Rakslice
49

Führen Sie Folgendes aus, damit git die Pull-Anforderung 123 herunterladen und mylocalbranchlokal patchen kann :

git checkout -b mylocalbranch
git pull origin pull/921/head
Thakis
quelle
10
Oder um die Pull-Anfrage in eine neue PR-Filiale zu übertragen git fetch origin pull/921/head:PRund dann mit Ihrer aktuellen Filiale zusammenzuführen, damit Sie die Änderungen überprüfen können git merge PR --no-commit --no-ff
MoonStom
4
Die vollständige Dokumentation finden Sie unter help.github.com/articles/checking-out-pull-requests-locally
JBert
Dazu müssen Sie Git mit Ihren Anmeldeinformationen einrichten. Sie können eine vorgeschlagene Änderung nicht anonym testen (wie Sie es tun könnten, indem Sie einen Diff manuell anwenden). Eine weitere Instanz von Git, die einen einfachen Workflow übernimmt und es schwierig macht.
JWW
2

Um die PR-Änderungen in einem inszenierten, aber nicht festgeschriebenen Zustand in Ihr lokales Repo zu übertragen, können Sie Folgendes überprüfen:

git pull origin pull/123/head --no-commit

Und um daraus eine Patch-Datei zu generieren:

git diff --cached > pr123.diff    
Bill Hollings
quelle