Git: muestra el contenido del file como se verá después de confirmar

Después de leer el enlace de precompilation de Git: files modificados / agregados , surgió la siguiente pregunta:

Dado que tengo un file con cambios escalonados y sin instancia, ¿cómo puedo mostrar una vista previa de los contenidos del file después de la puesta en escena?

Ejemplo:

echo "foo" >> file git add file echo "bar" >> file 

Resultado deseado:

 [previous contents of file] foo 

Use el prefijo : para acceder a los objects en el índice actual (en etapas pero aún no comprometidos).

 git show :file 

Ver gitrevisions (énfasis mío):

 <rev>:<path>, eg HEAD:README, :README, master:./README 

Un sufijo : seguido de una ruta de nombres del blob o tree en la ruta dada en el object tree-ish nombrado por la parte antes de los dos puntos. :path (con una parte vacía antes de los dos puntos) es un caso especial de la syntax que se describe a continuación: contenido registrado en el índice en la ruta determinada .

Actualización: la respuesta de grawity tiene una solución mucho más orderada

Esta receta es de la respuesta de jleedev a otra pregunta :

 git cat-file blob $(git ls-files -s file | awk '{print $2}') 

Es posible que desee crear un alias de git para eso si va a usarlo a menudo.

Puedes hacer git diff -cached, pero esto no es exactamente lo que quieres.

git grep -h --cached ^ -- file

funciona para mi.

Simplemente eche un vistazo a la respuesta principal para esta pregunta: ¿Cómo muestro los cambios que se han realizado?

La opción --cached es lo que quieres.