Descargue la solicitud de extracción de Github como diff unificado

Respuestas:

486

Para ver un commit como un archivo diff / patch, simplemente agregue .diffo .patchal final de la URL, por ejemplo:

Simone Carletti
fuente
13
Muchas gracias. Y hay también .patch. ¿Por qué esto no está expuesto en la GUI? ¿Cómo se supone que uno descubra esto?
Thilo
45
No está documentado para mantener stackoverflow en los negocios. Honestamente, esa es la pregunta frecuente n. ° 2
sehe
También porque git pulles el método preferido para descargar y aplicar los cambios.
Tekkub
Ooooh, gracias, esta respuesta vale oro. (Esa publicación en el blog también.) Me pregunto cómo alguien cuerdo puede trabajar sin eso, y por qué no está expuesto en la interfaz de usuario web lo suficientemente asquerosa como es.
mirabilos
8
A juzgar por lo que devuelven y los enlaces en los documentos en developer.github.com/v3/media/… , la .diffURL da una diferencia directa a la rama predeterminada basada en la salida de git-diff git-scm.com/docs/git-diff , y la .patchURL proporciona una concatenación de los commits individuales en el PR (cada uno relativo a su commit padre) en un formato adecuado para el correo electrónico basado en la salida de git-format-patch git-scm.com/docs/git-format-patch .
rakslice
49

Algo relacionado, para permitir que git descargue la solicitud 123 y la parchee mylocalbranchlocalmente, ejecute:

git checkout -b mylocalbranch
git pull origin pull/921/head
thakis
fuente
10
O para obtener la solicitud de extracción en una nueva sucursal de relaciones públicas git fetch origin pull/921/head:PRy luego fusionarse con su sucursal actual, dándole la oportunidad de revisar los cambios git merge PR --no-commit --no-ff
MoonStom
44
La documentación completa está en help.github.com/articles/checking-out-pull-requests-locally
JBert
Esto requiere que configures Git con tus credenciales. No puede probar de forma anónima un cambio propuesto (como podría aplicar un diferencial manualmente). Otra instancia de Git que toma un flujo de trabajo simple y lo dificulta.
jww
2

Para obtener los cambios de relaciones públicas en su repositorio local en un estado por etapas pero no comprometido, para que pueda revisar:

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

Y para generar un archivo de parche a partir de eso:

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