2011-08-02 8 views
10

¿Hay alguna manera de que podamos obtener los detalles de diff de un archivo junto con su comprometerse detalles de identificación a través de un solo comando? Actualmente, "git diff tag1..tag2" me da el cambio de código completo entre las dos etiquetas, pero no el ID de confirmación y las razones para la confirmación. Cuando uso "git log" me da un cambio de compromiso completo con cambios que no me preocupan cuando comparo dos etiquetas.Cualquier forma de obtener git diff con confirmar los cambios en solo comando

+0

Puede aclarar su pregunta un poco? ¿Qué quiere decir con "detalles de la diferencia de un archivo junto con su ID de confirmación"? –

+0

seguro ... Para el comando Eg git diff me da algo como diff --git a/opengl/libagl/egl.cpp b/opengl/libagl/egl.cpp índice 662a1fa..64f9766 100644 --- a/opengl /libagl/egl.cpp +++ b/OpenGL/libagl/egl.cpp seguido por el cambio de código exacta (añadido/resta). pero este cambio también tiene un ID de confirmación y un motivo de confirmación que deseo en el mismo archivo diff. Entonces, la idea es que si veo un cambio, también puedo ver el motivo. Esos detalles se pueden obtener a través de "git log" pero ejecutar "git log tag1..tag2" me está dando resultados completamente diferentes con archivos que no son parte de git diff – Vinz

+0

Desea que los mensajes de confirmación, los hash de confirmación y las diferencias enteras sean dos puntos en tu árbol de commit? –

Respuesta

16

pero este cambio también tiene una razón cometer Identificación y comprometer la que quiero en el mismo archivo diff

Creo que hay un poco de confusión en este punto. El git-diff genera la diferencia entre un commit y otro, esa diferencia no es solo un commit, representa una serie de commits en el rango que especifiques (662a1fa..64f9766 en el ejemplo que diste). De modo que serían múltiples identificaciones y mensajes de confirmación, tal vez incluso miles si sus etiquetas están lo suficientemente separadas.

Si git diff fueron a la salida todos los mensajes asociados comprometerse no tendrían buena forma de saber qué parte de la comparación se asocia con cada confirmación de identidad y mensaje de confirmación. Esta es la razón por la cual git log existe.

registro Git qué aparece en cometer cada uno después de otro en el rango especificado y por eso es que se mostrará los mensajes de confirmación.

git-diff muestra la diferencia entre una y z.
git-log le muestra el viaje que tomó para convertirse en z.

Con esto en mente, supongo que esto es probablemente lo que busca:

git log --color -p --full-diff tag1..tag2

Cuestiones relacionadas