Scarica la richiesta pull di Github come diff unificato


277

Come posso scaricare le modifiche contenute in una richiesta pull di Github come diff unificato?


Normalmente il collegamento patch PR viene inviato alla persona che accetta il PR.
Kenorb,

Questo non è ancora implementato in GitLab , ma ho creato una richiesta di funzionalità, quindi aggiungi i tuoi voti.
colan,

Risposte:


486

Per visualizzare un commit come file diff / patch, è sufficiente aggiungere .diffo .patchalla fine dell'URL, ad esempio:


13
Grazie mille. E c'è anche .patch. Perché questo non è esposto nella GUI? Come si dovrebbe scoprire questo?
Thilo,

45
Non è documentato per mantenere lo stackoverflow negli affari. Onestamente, questa è la domanda n. 2
sehe

Anche perché git pullè il metodo preferito per scaricare e applicare le modifiche.
Tekkub,

Ooooh, grazie, questa risposta vale oro. (Anche quel post sul blog.) Mi chiedo come chiunque sia sano di mente possa lavorare senza quello, e perché non è esposto nell'interfaccia utente Web abbastanza scadente.
mirabilos,

8
A giudicare da ciò che restituiscono e dai collegamenti nei documenti su developer.github.com/v3/media/… , l' .diffURL fornisce una differenza diretta al ramo predefinito basato git-diff sull'output git-scm.com/docs/git-diff , e l' .patchURL fornisce una concatenazione dei singoli commit nel PR (ciascuno relativo al loro commit principale) in un formato adatto per l'invio tramite e-mail basato git-format-patch sull'output git-scm.com/docs/git-format-patch .
rakslice,

49

In qualche modo correlato, per consentire a git download di tirare la richiesta 123 e di patch in mylocalbranchlocale, eseguire:

git checkout -b mylocalbranch
git pull origin pull/921/head

10
O per ottenere la richiesta pull su un nuovo ramo PR git fetch origin pull/921/head:PRe poi unirti al tuo ramo attuale, dandoti la possibilità di rivedere le modifiche git merge PR --no-commit --no-ff
MoonStom

4
La documentazione completa è disponibile all'indirizzo help.github.com/articles/checking-out-pull-requests-locally
JBert

Ciò richiede di configurare Git con le tue credenziali. Non è possibile testare anonimamente una modifica proposta (come è possibile applicare manualmente un diff). Ancora un altro esempio di Git che prende un semplice flusso di lavoro e lo rende difficile.
1717

2

Per ottenere le modifiche alle PR nel repository locale in uno stato graduale ma senza commit, in modo da poter esaminare:

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

E per generare un file patch da quello:

git diff --cached > pr123.diff    
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.