git show
Muestra un commit, un tag o un archivo en una versión dada
El comando 'git show' muestra un objeto. Para un commit imprime el autor, la fecha y el mensaje, seguidos del diff que introdujo. Para un tag anotado muestra el mensaje del tag y luego el commit. Con <commit>:<path> imprime un archivo exactamente como estaba en ese commit.
Sinopsis
git show [<options>] [<object>...]Opciones
Elegir la opción adecuada
show, log y diff
Tres formas de mirar el historial
| Comando | Muestra |
|---|---|
git log | Una lista de commits |
git show <commit> | Un commit y sus cambios |
git diff A B | La diferencia entre dos versiones cualesquiera |
Ejemplos
Último commit
git showMuestra HEAD con su diff.
Cualquier commit
git show a1b2c3dMuestra ese commit.
Un archivo en un commit antiguo
git show HEAD~2:app.jsImprime app.js como estaba hace dos commits.
Solo el resumen
git show --statArchivos cambiados en lugar del diff completo.
Ejemplos de flujos de trabajo
git log --onelineEncontrarlo
git show --stat a1b2c3dQué archivos tocó
git show a1b2c3dEl cambio completo
Solución de problemas
fatal: path 'x' does not exist in 'HEAD~1'
Causa: El archivo no existía en ese commit, o la ruta es incorrecta
Usa la ruta desde la raíz del repositorio; compruébalo con git show --stat
Un commit de fusión no muestra diff
Causa: Las fusiones solo muestran un diff combinado de las líneas en conflicto
Usa git show -m o git diff <merge>^1 <merge>
Consejos y trampas
Buenas prácticas
- ✓En commits grandes, empieza con --stat.
- ✓Usa commit:path para leer una versión antigua sin cambiar tus archivos.
Errores comunes
- ✗Escribir git show HEAD~1 app.js (un filtro) cuando querías HEAD~1:app.js (el contenido del archivo).
- ✗Usar una ruta relativa a tu carpeta sin ./ en commit:path — las rutas parten de la raíz del repositorio.
Preguntas frecuentes
git show <commit>.
Para leerla: git show <commit>:<path>. Para restaurarla: git restore --source=<commit> <path>.