¿Cómo mostrar lo que hizo un commit?

265

Una forma estúpida que sé es:

git diff commit-number1 commit-number2

alguna mejor manera?

Quiero decir que quiero conocer el commit1 en sí, no quiero agregar el commit2 antes como parámetro.

Sam Liao
fuente
14
Si bien "git show <commit>" es la solución correcta, puede usar "git diff <commit> ^!" para obtener diff entre commit y su (primer) padre. Ver man git-rev-parse (1) para más detalles.
Jakub Narębski el
Atrezzo a @Jakub: git diff <commit>^!es la respuesta, en mi humilde opinión. Es lo que ves en la vista de confirmación en github.com
Chris

Respuestas:

63

Hace

$ git log -p

haz lo que necesitas

Consulte el capítulo sobre Registro de Git en el Libro de la comunidad de Git para obtener más ejemplos. (O mira la documentación ).

Actualización: como otros ( Jakub y Bombe ) ya señalaron: aunque lo anterior funciona, git show es en realidad el comando que tiene la intención de hacer exactamente lo que se le pidió.

Mark van Lent
fuente
51

TL; DR

git show <commit>


mostrar

Para mostrar lo que hizo un commit con las estadísticas:

git show <commit> --stat

Iniciar sesión

Para mostrar el registro de confirmación con las diferencias introducidas para cada confirmación en un rango:

git log -p <commit1> <commit2>

Que es <commit> ?

Cada confirmación tiene una identificación única a la que hacemos referencia aquí como <commit> . La identificación única es un hash SHA-1: una suma de comprobación del contenido que está almacenando más un encabezado. #TMI

Si no sabes tu <commit>:

  1. git logpara ver el historial de confirmaciones

  2. Encuentra el compromiso que te interesa.

Geoffrey Hale
fuente
22

Descubrí que "git show --stat" es el mejor de todos aquí, te da un breve resumen de la confirmación, qué archivos agregaste y modificaste sin darte un montón de cosas, especialmente si cambiaste muchos archivos .

Harvey Lin
fuente
6

Esta es una manera que yo sepa. Con git, siempre parece haber más de una forma de hacerlo.

git log -p commit1 commit2
1800 INFORMACIÓN
fuente