git log

Inspección y comparación

Mostrar el historial de commits


El comando 'git log' muestra el historial de commits de tu repositorio. Los presenta en orden cronológico inverso (primero los más recientes), con el hash, el autor, la fecha y el mensaje. Con sus opciones puedes adaptar el formato de salida, filtrar commits y seguir el historial de un archivo. Imprescindible para entender la historia del proyecto y encontrar cambios concretos.

Sinopsis

git log [<options>] [<revision-range>] [[--] <path>...]
[ ] opcional| o<arg> valor a sustituir... repetible--flag opción

Opciones

Haz clic en una opción para desplegarla

Principiante (4)

Atajo de --pretty=oneline --abbrev-commit. Muestra cada commit en una sola línea con el hash abreviado.

RecomendadoHistorial compacto de una línea: la mejor vista general del día a día

Ejemplo

git log --oneline

Dibujar una representación gráfica en texto del historial de commits. Muestra de forma visual la estructura de ramas y merges.

RecomendadoMuestra dónde se separan y se fusionan las ramas; combínalo con --oneline

Ejemplo

git log --oneline --graph

Mostrar los commits alcanzables desde todas las referencias (cada rama local, rama de seguimiento remoto y etiqueta, más el stash), no solo desde HEAD. Imprescindible junto con --graph.

RecomendadoCon --graph, muestra cada rama, etiqueta y referencia de seguimiento remoto

Ejemplo

git log --oneline --all

Limitar el número de commits mostrados. -n 5 muestra solo los 5 commits más recientes; -5 y --max-count=5 son formas equivalentes.

RecomendadoLimita la salida a los N últimos commits

Ejemplo

git log -n 5

Intermedio (2)

Mostrar el diff (patch) que introdujo cada commit. Ves exactamente qué cambió en cada uno. Los commits de merge no muestran diff por defecto.

Cuando haga faltaLos diff completos son largos; combínalo con -n o una ruta. Los merges no muestran diff por defecto

Ejemplo

git log -p

Filtrar los commits cuyo nombre o correo de autor coincide con el patrón (una regex que distingue mayúsculas; añade -i para ignorarlas). Útil para ver lo que ha escrito una persona concreta.

Cuando haga faltaFiltra por autor: regex que distingue mayúsculas; añade -i para ignorarlas

Ejemplo

git log --author="John"

Elegir la opción adecuada

Formatos de salida del log

Elige el formato adecuado para lo que necesitas

ComandoMuestraNivel de detalleIdeal para
git logTodos los detallesAltoRevisión detallada
git log --onelineHash + mensajeBajoVistazo rápido
git log --statArchivos cambiados por commitMediaVer el alcance de los cambios
git log -pDiff completoMuy altaRevisión de código

Filtrar commits

Encontrar commits concretos en el historial

ComandoFiltrar porEjemplo
--authorPersona que escribió el commit (autor; usa --committer para quien hizo el commit)--author="John"
--since/--untilRango de fechas--since="2024-01-01"
--grepMensaje del commit--grep="fix"
-- <path>Archivos cambiados-- src/app.js

Log frente a reflog

Saber cuándo usar cada uno

ComandoMuestra¿Sobrevive a un reset?Úsalo para
git logHistorial de commits de la ramaNoConsultar el historial normal
git reflogTodos los movimientos de HEADSíRecuperar commits perdidos

Ejemplos

Ver commits recientes

git log

Muestra el historial completo con hash, autor, fecha y mensaje.


Vista compacta de una línea

git log --oneline

Muestra cada commit en una línea con hash corto y mensaje.


Ver el historial de un archivo

git log -- path/to/file.js

Muestra solo los commits que cambiaron el archivo indicado.


Grafo visual de ramas

git log --oneline --graph --all

Muestra un grafo en texto de todas las ramas y sus commits.

Ejemplos de flujos de trabajo

1
git log --oneline -10

Vistazo rápido a los 10 últimos commits

2
git log -p -1

Ver el diff completo del commit más reciente

1
git log --oneline -- path/to/file.js

Listar los commits que cambiaron este archivo

2
git log -p -- path/to/file.js

Ver los cambios reales

3
git blame path/to/file.js

Ver quién escribió cada línea

1
git log --oneline --graph --all

Visualización completa de las ramas

2
git log --oneline --graph main..feature

Commits de feature que no están en main

Solución de problemas

La salida del log es demasiado larga / no puedo salir

Causa: Git usa el paginador 'less' por defecto

Pulsa 'q' para salir. Usa -n para limitar los commits o redirige a head: git log --oneline | head -20

No veo los commits de otras ramas

Causa: Por defecto, git log solo muestra los commits alcanzables desde HEAD (tu rama actual)

Usa --all: git log --oneline --all

No encuentro un commit que sé que existe

Causa: Puede que el commit esté en otra rama o que se quitara con un reset

Prueba git reflog para ver todas las posiciones recientes de HEAD, incluso tras resets

El log muestra demasiada / demasiado poca información

Causa: Puede que el formato por defecto no se ajuste a lo que necesitas

Usa --oneline para algo breve, -p para detalle y --stat para un resumen por archivo

Consejos y trampas

Buenas prácticas

  • ✓Usa --oneline para vistazos rápidos y el log completo para revisiones detalladas
  • ✓Combina --graph --all --oneline para ver todas las ramas de forma visual
  • ✓Usa -n para limitar la salida cuando solo necesites los commits recientes
  • ✓Filtra por autor, fecha o ruta para encontrar cambios concretos
  • ✓Usa git log main..feature para ver los commits exclusivos de una rama

Errores comunes

  • ✗No saber que puedes pulsar 'q' para salir del visor del log (usa el paginador less por defecto).
  • ✗Olvidar --all cuando quieres ver commits de todas las ramas, no solo de la actual.
  • ✗Usar git log cuando necesitas git reflog: log muestra el historial de commits, reflog muestra todos los cambios de referencias, incluidos los resets.
  • ✗No poner -- antes de las rutas de archivo, lo que puede crear ambigüedad con los nombres de rama.

Preguntas frecuentes

A:

Pulsa 'q' para salir. Git log usa el paginador 'less'. También puedes limitar la salida con -n o redirigirla a head.

A:

Usa --all: git log --oneline --all. Sin él, solo ves los commits alcanzables desde tu rama actual (HEAD).

A:

Usa -p (patch): git log -p. Añade -1 para ver solo el más reciente: git log -p -1

A:

Usa --author: git log --author="name". Coincide con partes de nombres y correos (distingue mayúsculas; añade -i para ignorarlas).

A:

Log muestra el historial de commits. Reflog muestra todos los movimientos de HEAD, incluidos los resets. Usa reflog para recuperar commits «perdidos».