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


277

¿Cómo puedo descargar los cambios contenidos en una solicitud de extracción de Github como un diff unificado?


Normalmente, el enlace del parche de PR se envía a la persona que acepta el PR.
kenorb

Esto aún no está implementado en GitLab , pero creé una solicitud de función, así que agregue sus votos.
colan

Respuestas:


486

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


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

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

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    
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.