Introducción
Descripción general de los comandos git status, git log, git tag y git blame, con ejemplos básicos de uso para examinar un repositorio.

Una vez que tienes un repositorio Git con algo de historial, la mayor parte de tu trabajo diario no consiste en cambiar archivos, sino en comprender su estado actual y pasado. Antes de hacer un commit, un push o revertir cualquier cosa, normalmente querrás responder preguntas como: ¿Qué he cambiado pero aún no guardado? ¿Quién escribió esta línea y por qué? ¿Cuándo se introdujo este error? ¿A qué versión pertenece este commit?
Esta parte del tutorial cubre los cuatro comandos a los que se recurre con más frecuencia al examinar un repositorio en lugar de modificarlo:
| Comando | Lo que responde | Alcance |
|---|---|---|
git status | ¿Qué ha cambiado desde el último commit y qué está en el área de preparación? | Directorio de trabajo + área de preparación |
git log | ¿Cuál es el historial de commits? | Solo instantáneas confirmadas |
git tag | ¿Qué commits son notables (p. ej., versiones)? | Punteros con nombre a commits |
git blame | ¿Quién modificó por última vez cada línea y en qué commit? | Autoría por línea de un archivo |
A continuación se resume cada comando con un ejemplo rápido. Las páginas siguientes cubren cada opción en detalle.
git status
El comando git status muestra el estado del directorio de trabajo y del área de preparación, permitiéndote ver qué cambios están preparados para el próximo commit y qué archivos aún no están siendo rastreados por Git. No muestra el historial de commits confirmados — solo la diferencia entre tus archivos actuales y el último commit.
Ejecútalo dentro de cualquier repositorio:
$ git status
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: index.html
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
modified: style.css
Untracked files:
(use "git add <file>..." to include in what will be committed)
notes.txtAquí index.html está preparado (irá al próximo commit), style.css está modificado pero no preparado, y notes.txt es completamente nuevo y no está rastreado. Convierte git status en un hábito antes de cada commit para no incluir accidentalmente — ni olvidar — un archivo.
git log
El comando git log examina el historial confirmado de un repositorio y te ayuda a encontrar una versión concreta del proyecto. Lista, filtra y busca commits, pero solo opera sobre el historial confirmado, por lo que nada que aún no hayas hecho commit aparecerá.
$ git log --oneline -3
9a3c1f4 (HEAD -> main) Fix navbar alignment on mobile
1d72b08 Add contact form validation
f0e5a91 Initial commitEl indicador --oneline condensa cada commit a su hash corto y su asunto. Puedes filtrar por autor (--author), por fecha (--since, --until) o por contenido (-S "searchterm") para localizar exactamente cuándo ocurrió un cambio. Para inspeccionar un commit individual en detalle, combina git log con git show.
git tag
Las etiquetas son referencias que apuntan a puntos específicos y notables en el historial de Git. Su principal propósito es marcar una versión — por ejemplo v1.0.0. A diferencia de una rama, una etiqueta no se mueve al añadir nuevos commits; una vez creada, apunta permanentemente a la misma instantánea.
$ git tag v1.0.0 # create a lightweight tag on the current commit
$ git tag # list existing tags
v1.0.0
$ git tag -a v1.1.0 -m "Release 1.1.0" # create an annotated tag with a messageUna etiqueta ligera es simplemente un nombre para un commit, mientras que una etiqueta anotada (-a) también almacena el autor de la etiqueta, una fecha y un mensaje — las etiquetas anotadas son las recomendadas para versiones. Las etiquetas no se envían automáticamente; se comparten con git push origin v1.0.0 (o git push --tags).
git blame
El comando git blame muestra los metadatos de autoría asociados a cada línea de un archivo: el commit, el autor y la fecha en que se modificó por última vez esa línea. Es la herramienta ideal para entender por qué existe una línea concreta y a quién preguntar al respecto.
$ git blame -L 1,3 index.html
9a3c1f4a (Jane Doe 2024-03-12 10:22:01 +0000 1) <!DOCTYPE html>
1d72b08c (John Roe 2024-02-28 14:05:33 +0000 2) <html lang="en">
9a3c1f4a (Jane Doe 2024-03-12 10:22:01 +0000 3) <head>El indicador -L 1,3 limita la salida a las líneas 1–3. Cada línea tiene como prefijo el hash corto del commit, el autor y la marca de tiempo del último cambio. Para profundizar en uno de esos commits, copia su hash en git show o git log.
Examinar frente a modificar
Un modelo mental útil: estos comandos son de solo lectura. Ninguno de git status, git log, git tag (al listar) o git blame altera tus archivos ni el historial — únicamente informan del estado. Esto los hace seguros para ejecutar en cualquier momento. Cuando realmente quieras cambiar lo que está registrado, recurrirás a otras herramientas como git commit, git checkout, o git diff para previsualizar los cambios primero.