W3docs

git log

Información sobre el comando git log, sus opciones más comunes y ejemplos con explicación breve.

gitlog

El comando git log es tu ventana al historial de un proyecto. Lista los commits que han sido registrados en el repositorio, del más reciente al más antiguo, y ofrece un amplio conjunto de opciones para filtrar, buscar y reformatear ese historial. Esta página explica qué muestra git log, cómo leer su salida predeterminada, las opciones más utilizadas y cómo combinarlas para responder preguntas reales como "¿quién modificó este archivo?" o "¿qué llegó entre dos versiones?"

Qué muestra git log

git log muestra las instantáneas confirmadas de un repositorio — el historial permanente que Git ha almacenado. Esta es una distinción importante: git log nunca muestra trabajo sin confirmar. Para inspeccionar el directorio de trabajo y el área de preparación, usa git status; para ver los cambios línea por línea que aún no han sido confirmados, usa git diff.

Ejecutado sin argumentos, el comando recorre hacia atrás desde el commit actual (HEAD) a través de cada padre:

git log

Una entrada típica se ve así:

commit 1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b (HEAD -> master)
Author: Bob Smith <[email protected]>
Date:   Mon Jun 16 10:24:31 2026 +0400

    Add login form validation

Cada commit lista su hash SHA-1 de 40 caracteres, el autor, la fecha y el mensaje del commit. Por defecto, la salida se pagina: presiona Space para desplazarte y q para salir. Los commits se muestran en orden cronológico inverso.

Opciones de uso frecuente

La salida de log puede personalizarse de muchas formas, desde filtrar qué commits aparecen hasta imprimirlos en un formato completamente definido por el usuario. Aquí están las opciones que usarás con más frecuencia:

ComandoDescripción
git logMuestra el historial completo de commits en el formato predeterminado. Usa Space para desplazarte y q para salir si la salida ocupa varias pantallas.
git log -n <limit>Limita el número de commits. Por ejemplo, git log -n 2 muestra solo los 2 commits más recientes.
git log --onelineCondensa cada commit a una sola línea (hash corto + resumen) — ideal para una vista general rápida.
git log --statAñade la lista de archivos modificados junto con el conteo de líneas añadidas y eliminadas para cada commit.
git log -pMuestra el parche completo (diff) introducido por cada commit.
git log --author="<pattern>"Filtra los commits de un autor específico. <pattern> puede ser una cadena simple o una expresión regular.
git log --grep="<pattern>"Filtra los commits cuyo mensaje coincide con <pattern> (cadena o regex).
git log <since>..<until>Muestra solo los commits alcanzables desde <until> pero no desde <since>. Cada lado puede ser un ID de commit, nombre de rama, etiqueta, HEAD u otra referencia de revisión.
git log <file>Muestra solo los commits que tocaron el archivo dado — su historial de cambios.
git log --graph --decorate --onelineDibuja un gráfico de texto de la estructura de ramas/fusiones, etiqueta ramas y tags, e imprime una línea por commit.
git log --since="<date>"Muestra los commits más recientes que una fecha (por ejemplo "2 weeks ago" o "2026-01-01").
git log --until="<date>"Muestra los commits más antiguos que una fecha.
git log --allMuestra los commits de todas las ramas y referencias, no solo la rama actual.

Una vista compacta

Para revisar el historial rápidamente, --oneline es la opción principal. Combinado con --graph y --decorate, convierte el log en un mapa legible de tus ramas:

git log --graph --decorate --oneline
* 1a2b3c4 (HEAD -> master) Add login form validation
* 9f8e7d6 Fix typo in README
| * 4c5d6e7 (feature) Start checkout flow
|/
* 0a1b2c3 Initial commit

Los asteriscos y las líneas de conexión muestran cómo las ramas divergieron y se fusionaron; (HEAD -> master) y (feature) son las decoraciones añadidas por --decorate.

Filtrar el historial

El verdadero poder de git log está en reducir miles de commits a los que te interesan.

Por autor y contenido

Para encontrar cada cambio que realizó un autor específico en un archivo concreto, combina --author, -p y una ruta de archivo:

git log --author="Bob Smith" -p w3docs.txt

Esto muestra el diff completo de cada cambio que Bob realizó en w3docs.txt. Para buscar en los mensajes de commit en lugar de los autores, usa --grep:

git log --grep="bugfix"

Por fecha

git log --since="2 weeks ago" --until="yesterday"

--since y --until aceptan fechas absolutas (2026-01-01) o expresiones relativas en lenguaje natural ("3 days ago", "last Monday").

Entre dos referencias

La sintaxis <since>..<until> (doble punto) responde a la pregunta "¿qué hay en B que no está en A?" — perfecta para comparar ramas antes de una fusión:

git log --oneline master..some-feature

Esto lista cada commit en some-feature que aún no ha llegado a master. Invierte los lados para ver el resultado contrario. Como las etiquetas también funcionan como referencias de revisión, la misma sintaxis es ideal para notas de versión:

git log --oneline v1.0..v2.0

Inspeccionar el historial de un archivo

Cuando necesitas entender cómo evolucionó un archivo, pasa su ruta:

git log --oneline -- src/app.js

El separador -- le indica a Git que todo lo que va después es una ruta, lo que evita ambigüedades cuando un archivo y una rama comparten el mismo nombre. Para ver los cambios reales junto al historial, añade -p. Si en cambio necesitas saber quién tocó por última vez cada línea, usa git blame. Para inspeccionar el contenido completo de un commit específico, usa git show.

Errores comunes

  • git log solo muestra el historial confirmado. El trabajo guardado temporalmente, en el área de preparación o sin guardar no aparecerá — consulta git status y git stash para eso.
  • Por defecto solo se muestra la rama actual. Añade --all para incluir todas las ramas, o especifica una rama/referencia de forma explícita.
  • Los commits perdidos a menudo pueden recuperarse. Incluso los commits a los que ninguna rama apunta pueden ser accesibles a través de git reflog.
  • A..B no es simétrico. master..feature y feature..master devuelven commits diferentes; el orden importa.

Práctica

Práctica
What are the functionalities and options of the 'git log' command?
What are the functionalities and options of the 'git log' command?
Was this page helpful?