Sinopsis
git show [<options>] [<object>...]
Descripción
El comando git show muestra información sobre objetos Git: commits (con diff), tags (anotación + objeto etiquetado), trees (listado de archivos) o blobs (contenido de archivos). Sin argumentos, muestra el commit más reciente. Con un argumento de path, muestra el archivo como existía en una revisión específica.
git show es la herramienta de referencia para inspeccionar un único commit en detalle. A diferencia de git log -1 -p, formatea naturalmente tanto tags anotados como listados de tree, lo que lo hace útil para examinar tags de release o extraer contenido de archivos históricos.
En el uso diario, este comando se integra estrechamente con alias de shell, plugins de editor e integración continua. Los usuarios avanzados a menudo añaden alias que combinan los flags que siempre pasan. El formato de salida puede personalizarse vía configuración de Git. Cuando algo sale mal, ejecuta el comando con GIT_TRACE=1 para revelar las llamadas plumbing subyacentes.
Entender cómo este comando interactúa con el resto del modelo de datos de Git rinde dividendos. Cada comando opera sobre algún subconjunto de las piezas (objetos, index, refs, árbol de trabajo), y saber cuáles toca ayuda a predecir resultados y a recuperarse de errores.
Opciones comunes
| Opción | Descripción |
|---|---|
--stat | Add a diffstat summary. |
--name-only | List only changed file names. |
--pretty=<fmt> | Choose format: oneline, short, full, custom. |
-s, --no-patch | Suppress the diff. |
--show-signature | Verify and display GPG signatures. |
--word-diff | Highlight changes at the word level. |
Ejemplos
git show HEAD
# Latest commit with diff
git show v2.0.0
# Show an annotated tag
git show HEAD:src/main.c
# Display the file as it was at HEAD
git show --stat abc123
# Just the diffstat for a specific commit
Errores comunes
Confusing git show HEAD~1 (one commit before HEAD) with git show HEAD^1 (first parent of HEAD) — they're equivalent on linear history but differ on merges. Also note git show HEAD:file uses a colon, not a space, to specify a file at a revision.
Comandos relacionados
git log, git diff, git cat-file, git blame