Después de hacer un git pull, ¿cuál es el command para ver qué cambió en los files que se actualizaron?

Después de hacer un git pull, ¿cuál es el command para ver qué cambió en los files que se actualizaron? ejemplos serían geniales

Prefiero un simple:

git show HEAD^ 

git pull por defecto informa algo así como

 Updating 9e9a656..bb743dd 

que es una input válida para git log o git diff :

 git log -p 9e9a656..bb743dd git diff 9e9a656..bb743dd 

Si perdiste la salida de git pull , puedes usar git reflog para revisar tus propias acciones:

 bb743dd HEAD@{0}: pull origin master: Fast-forward 9e9a656 HEAD@{1}: reset: moving to HEAD^ 

Entonces, en este caso, git log HEAD@{1} también mostrará el contenido de la extracción, y si hiciste algo intermedio (como una commit ) …

 1dac876 HEAD@{0}: commit: some stuff bb743dd HEAD@{1}: pull origin master: Fast-forward 9e9a656 HEAD@{2}: reset: moving to HEAD^ 

… puedes usar la syntax ..

 git log HEAD@{2}..HEAD@{1} # or log -p, or diff 

Yo usaría git log para ver los posts de confirmación (y SHA), y git diff <SHA-commitA> HEAD , donde está el último commit que tenía antes de pull -ing.

 git show HEAD~1 

Mostrará qué cambió en el último commit.

[La siguiente respuesta asume que la combinación no fue una fusión de avance rápido , y que no solicitó a git pull que usara su modo de rebase. En caso de que esas suposiciones sean incorrectas, probablemente ya sea git log o git log -p o git diff HEAD@{1} HEAD le mostrará lo que desea.]

Hay dos cosas diferentes que puede hacer: revisar qué compromisos se fusionaron y revisar los cambios introducidos por la combinación. El primero se hace usando git log (como se explica en otra respuesta ); el último es un poco más complicado.

Normalmente, git show <commit> te da una diferencia de las cosas introducidas en el commit dado, pero para los commit de fusión esto produce un "diff combinado" networkingucido. Los detalles no son terriblemente relevantes aquí … basta decir que no verás una diferencia normal para los commit de fusión a less que uses trickery.

La forma más fácil de ver una diferencia de los cambios introducidos por una fusión (y cualquier resolución de conflicto realizada como parte de ella), en comparación con la primera matriz, es git diff <commit>^ <commit> ( ^ = first parent).

Para get el máximo detalle, puede ver las diferencias de las confirmaciones individuales que se fusionaron. Recomiendo hacer esto en una vista gráfica, haciendo que todo sea un poco less intangible: git log --graph -p

Desea ver los files que cambiaron en la última extracción. Eso es

 git diff --name-only HEAD@{1}..HEAD 

La documentation de git rev-parse explica.

<refname> @{ < n > } , por ejemplo , master@{1}

Una reference seguida del sufijo @ con una especificación ordinal encerrada en un par de llaves (por ejemplo, {1} , {15} ) especifica el n -ésimo valor anterior de esa reference. Por ejemplo, master@{1} es el valor anterior inmediato de master mientras que master@{5} es el 5to valor anterior de master. Este sufijo solo se puede usar inmediatamente después de un nombre de reference y el ref debe tener un logging existente ( $GIT_DIR/logs/<refname> ).

Ejecutar git pull mueve la twig actual. HEAD está donde está ahora y HEAD@{1} está donde estaba antes del pull.

Para ver resúmenes de un carácter sobre cómo cambiaron los files, ejecuta

 git diff --name-status HEAD@{1}..HEAD 

Los detalles completos están disponibles en la salida de

  git diff HEAD@{1}..HEAD