W3docs

git show

Aprende el comando git show para inspeccionar commits, etiquetas y archivos en cualquier revisión. Opciones útiles y ejemplos.

Definición

El comando git show muestra detalles sobre un objeto de Git — la mayoría de las veces un commit. Para un commit, imprime el mensaje del registro junto con el diff completo de los cambios realizados, dándote una imagen completa de una sola revisión. También puede mostrar etiquetas, árboles y el contenido de un archivo tal como existía en cualquier punto del historial.

Usa git show cuando ya sabes qué objeto te interesa y quieres ver todo sobre él en una sola pantalla. Esta página cubre cómo mostrar commits, leer la salida, ver un archivo en cualquier revisión, inspeccionar etiquetas, las opciones más útiles y cómo el comando difiere de git log y git diff.

Mostrar un commit

Sin argumentos, git show muestra el commit más reciente (HEAD): su autor, fecha, mensaje y los cambios que introdujo.

git show

Para inspeccionar cualquier otro commit, pasa su hash, un nombre de rama o una referencia relativa:

git show a1b2c3d        # by abbreviated hash
git show HEAD~2         # the commit two steps before HEAD
git show main           # the tip of the main branch
git show HEAD@{1}       # where HEAD pointed one move ago (via the reflog)

La salida combina lo que obtendrías de git log y git diff para ese commit.

Leer la salida

Una visualización típica de un commit tiene un encabezado seguido de un diff unificado:

commit a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0
Author: Jane Dev <[email protected]m>
Date:   Mon Jun 9 14:02:11 2025 +0200

    Fix off-by-one error in pagination

diff --git a/src/page.js b/src/page.js
index 83db48f..f735c2e 100644
--- a/src/page.js
+++ b/src/page.js
@@ -10,7 +10,7 @@ function pageStart(page, perPage) {
-  return page * perPage;
+  return (page - 1) * perPage;
 }

El encabezado identifica el commit, quién lo creó y cuándo. El bloque diff --git muestra el cambio: las líneas que comienzan con - fueron eliminadas, las que comienzan con + fueron añadidas, y el encabezado de fragmento @@ ... @@ indica los números de línea afectados. Este es el mismo formato de parche que ves en git diff.

Ver un archivo en una revisión específica

Un truco muy útil es imprimir un archivo exactamente como lucía en un commit determinado, sin necesidad de hacer un checkout. Usa la sintaxis <commit>:<ruta>:

git show HEAD~3:src/index.js

Esto transmite la versión antigua de index.js a tu terminal, dejando tu árbol de trabajo sin cambios — ideal para comparar o copiar un fragmento del pasado. La ruta se toma desde la raíz del repositorio, no desde tu directorio actual. Para inspeccionar la versión preparada de un archivo, usa dos puntos sin commit:

git show :src/index.js   # the file as currently staged in the index

Inspeccionar etiquetas

Cuando apuntas git show a una etiqueta anotada, imprime el mensaje de la etiqueta y la información del etiquetador, seguido del commit al que apunta la etiqueta:

git show v1.0.0

Esta es la forma más rápida de ver quién creó una etiqueta de lanzamiento y a qué apunta. Consulta git tag para crearlas. Una etiqueta ligera no tiene metadatos propios, por lo que git show salta directamente a mostrar el commit que etiqueta.

Mostrar varios objetos a la vez

git show acepta más de un argumento e imprime cada objeto en orden, el más reciente primero. Esto es útil para revisar un pequeño conjunto de commits relacionados sin desplazarse por todo el historial:

git show HEAD HEAD~1 v1.0.0

Opciones útiles

Por defecto, git show incluye el diff completo. Las opciones siguientes recortan o reformatean esa salida:

git show --stat HEAD         # summary of files changed and line counts
git show --name-only HEAD    # just the changed file names
git show -s HEAD             # suppress the diff; show only the commit message
git show --pretty=oneline HEAD   # compact one-line header
git show --format="%an %s" -s HEAD   # custom format: author name + subject

Los marcadores de posición de --format (y --pretty) son compartidos con git log: %an es el nombre del autor, %s la línea de asunto, %H el hash completo y %ad la fecha del autor.

Opciones comunes

ComandoDescripción
git showMuestra el último commit con su diff completo.
git show <commit>Muestra un commit específico por hash, rama o referencia.
git show <commit>:<file>Imprime el contenido de un archivo tal como estaba en ese commit.
git show --stat <commit>Resume qué archivos cambiaron y en cuántas líneas.
git show --name-only <commit>Lista solo los nombres de los archivos modificados.
git show -s <commit>Muestra solo el mensaje del commit, sin diff.
git show <tag>Muestra los metadatos de una etiqueta y el commit al que apunta.

git show vs git log y git diff

Estos tres comandos se superponen pero sirven para necesidades diferentes. git log recorre un rango de commits y está diseñado para explorar el historial. git diff compara dos estados arbitrarios. git show se centra en un objeto y te dice todo sobre él — lo que lo convierte en la opción natural cuando ya sabes qué commit te interesa.

Un flujo de trabajo habitual es encontrar el hash de un commit con git log o git blame, y luego pasar ese hash a git show para leer el cambio completo en detalle.

Práctica

Práctica
¿Qué puede hacer 'git show'?
¿Qué puede hacer 'git show'?
Was this page helpful?