¿Existe un comando Git rápido para ver una versión antigua de un archivo?

¿Existe un comando en Git para ver (ya sea volcado a stdout, o en $PAGER o $EDITOR) una versión concreta de un archivo determinado?

Puedes utilizar git show:

$ git show REVISION:path/to/file

Sustituye REVISION por tu revisión actual (puede ser un SHA de la confirmación de Git, un nombre de etiqueta, un nombre de rama, un nombre de confirmación relativo, o cualquier otra forma de identificar una confirmación en Git)

Por ejemplo, para ver la versión del archivo src/main.c de hace 4 confirmaciones, utilice

$ git show HEAD~4:src/main.c

Ten en cuenta que la ruta es desde la raíz del repositorio a menos que empiece por ./ o ../ para indicar una ruta relativa. Git para Windows requiere barras inclinadas incluso en las rutas relativas al directorio actual. Para más información, consulta la página man de git-show.

Comentarios (32)

Haciendo esto por fecha se ve así:

git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt

Tenga en cuenta que HEAD@{2013-02-25} significa "donde HEAD estaba en 2013-02-25" en este repositorio (usando el reflog), no "el último commit antes de 2013-02-25 en esta rama en la historia".

Comentarios (6)

Si te gustan las interfaces gráficas, puedes usar gitk:

  1. iniciar gitk con:

     gitk /ruta/al/archivo
  2. Elija la revisión en la parte superior de la pantalla, por ejemplo, por la descripción o la fecha. Por defecto, la parte inferior de la pantalla muestra el diff de esa revisión, (correspondiente al botón de radio "patch").

  3. Para ver el archivo de la revisión seleccionada:

  • Haga clic en el botón de radio "árbol". Esto mostrará la raíz del árbol de archivos en esa revisión.
    1. Descienda hasta el archivo.
Comentarios (5)