Por Anónimo (no verificado) , 29 Abril 2026

Sinopsis

git log [<options>] [<revision-range>] [[--] <path>...]

Descripción

El comando git log muestra el historial de commits alcanzable desde una o más refs (predeterminado HEAD). Es una de las herramientas más flexibles de Git, soportando filtrado por autor, fecha, contenido del mensaje, paths de archivo y más. Combinado con opciones de formato, puede producir salida adecuada para changelogs, auditorías y arqueología de código.

Idiomas útiles incluyen git log --oneline --graph --decorate --all para una vista visual y compacta del historial entero, y git log -p para ver patches en línea. Argumentos pathspec restringen el log a commits que tocaron archivos específicos.

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ónDescripción
--onelineOne commit per line, abbreviated SHA + subject.
--graphASCII art of branch and merge structure.
--allInclude all refs, not just HEAD.
-p, --patchShow diffs alongside each commit.
--statShow changed-file statistics.
--author=<pattern>Filter by author.
--since / --untilFilter by date.
-S <string>Pickaxe: find commits that add/remove this string.
--followTrack a single file's history across renames.

Ejemplos

git log --oneline --graph --decorate --all
# Compact visual history of everything

git log -p src/auth.py
# Full diffs of every commit touching auth.py

git log -S "TODO" --since="2 weeks ago"
# Find recent commits that added or removed "TODO"

git log --author="alice" --pretty=format:"%h %s" -n 20
# Last 20 commits by alice in custom format

Errores comunes

Forgetting that git log file.txt only shows commits where file.txt existed — use --follow if it has been renamed. Over-relying on --grep when you really want -S (which searches diffs, not messages). And on huge repos, git log -p without a path can produce gigabytes of output.

Comandos relacionados

git show, git blame, git shortlog, git diff