Pregunta ¿Cómo ver los cambios en un commit de Git?


Cuando lo hago git diff COMMIT Veo los cambios entre esa confirmación y HEAD (hasta donde yo sé), pero me gustaría ver los cambios que se realizaron en esa confirmación única.

No he encontrado ninguna opción obvia en diff / log que me dé ese resultado.


989
2017-07-10 06:22


origen


Respuestas:


Para ver la diferencia de un particular COMMIT picadillo:

git diff COMMIT~ COMMIT le mostrará la diferencia entre eso COMMITel antepasado y el COMMIT. Ver las páginas man para git diff para detalles sobre el comando y gitrevisions acerca de ~ notación y sus amigos.

Alternativamente, git show COMMIT hará algo muy similar. (Los datos de compromiso, incluido su diff - pero no para los commit de fusión.) Ver el git show manpage.


1277
2017-07-10 06:23



Como se menciona en "¿Taquigrafía para diff de git commit con su padre?", también puedes usar git diff con:

git diff COMMIT^!

o

git diff-tree -p COMMIT

Con git show, necesitarías (para enfocarte solo en diff) hacer:

git show --color --pretty=format:%b $COMMIT

los COMMIT parámetro es un commit-ish:

UN cometer objeto o un objeto que se puede desreferenciar recursivamente a un objeto de confirmación. Los siguientes son todos commit-ishes: un objeto commit, un objeto de etiqueta que apunta a un objeto de confirmación, un objeto de etiqueta que apunta a un objeto de etiqueta que apunta a un objeto de confirmación, etc.

Ver gitrevision "ESPECIFICAR REVISIONES" para hacer referencia a un commit-ish.
Ver también "¿Qué significa tree-ish en Git?".


371
2017-07-10 06:31



También puedes probar esta manera fácil:

git show <COMMIT>

184
2018-06-15 09:02



git show muestra los cambios realizados en la confirmación más reciente.

Equivalente a git show HEAD.

git show HEAD~1 te lleva de vuelta 1 commit.


48
2017-09-16 01:50



Primero obtén la ID de compromiso usando,

git log #to list all

O

git log -p -1 #last one commit id

Copia la identificación del commit.

Ahora usamos dos métodos para enumerar los cambios de una confirmación específica,

Método 1:

git diff commit_id^! #commit id something like this 1c6a6000asad012

Método 2:

git show commit_id
For example: git show 1c6a600a

21
2017-07-19 05:48



Desde la página del manual para git-diff (1):

git diff [options] [<commit>] [--] [<path>…]
git diff [options] --cached [<commit>] [--] [<path>…]
git diff [options] <commit> <commit> [--] [<path>…]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>

Use el tercero en el medio:

git diff [options] <parent-commit> <commit>

También desde la misma página del manual, en la parte inferior, en el Sección de ejemplos:

$ git diff HEAD^ HEAD      <3>

Compare la versión antes del último compromiso y el último compromiso.

Es cierto que está redactado de manera un poco confusa, sería menos confuso

Compare la confirmación más reciente con la confirmación anterior.


20
2017-07-10 07:20



Lo siguiente parece hacer el trabajo; Lo uso para mostrar lo que ha traído una fusión.

git whatchanged -m -n 1 -p <SHA-1 hash of merge commit>

17
2017-10-14 17:16



Otra posibilidad:

git log -p COMMIT -1


9
2018-02-16 14:49