Mostrar git diff HEAD~1 del archivo no tocado en confirmaciones recientes

Mostrar git diff HEAD~1 del archivo no tocado en confirmaciones recientes

En Git, para ver las diferencias con una confirmación anterior ejecuto esto:

git diff HEAD~1

Para ver las confirmaciones relacionadas con un solo, fileejecutaría esto:

git log --oneline file

Pero si ejecuto lo siguiente y el archivo al que quiero hacer referencia no se modificó en las últimas confirmaciones, Git no muestra nada.

git diff HEAD~1 file

¿Cómo puedo ver la diferencia de una manera similar HEADpero a un archivo específico si ese archivo no se confirmó en la referencia señalada por HEAD?

Respuesta1

Tendrá que hacer referencia explícita al SHA si desea ver la diferencia de un archivo que no se modificó entre la última confirmación y la anterior ( HEAD~1).

Ejecute el registro para ver algunos de los SHA que querrá ver

git log --oneline <file>

Un resultado de ejemplo es el siguiente:

af46919 raspado - en su lugar se llama pizzería local
b09206c agregó salsa y una botella de dr pepper a la lista
ad90f90 amasar y dejar toda la noche

Ahora, si desea ver la diferencia de los cambios realizados en el archivo, haga referencia a él a través del segundo SHA que vea. En este caso tenemos esto del ejemplo:

git diff b09206c <file>

Lo anterior es una abreviatura de

git diff b09206c HEAD <file>

O piénselo así:

git diff <start-commit-SHA> <future-commit-SHA> <file>

Para ejecutarlo como un comando (por ejemplo, para un script), puede hacer:

git log --oneline <file> |awk 'NR==2{print $1}'|xargs -I {} git diff {} <file> 

información relacionada