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

Más allá del predeterminado

git log es un pequeño lenguaje de consulta para tu historia. Con los flags adecuados produce reportes calidad dashboard, registros de auditoría y forenses de bugs.

Formatos pretty

git log --pretty=oneline
git log --pretty=fuller
git log --pretty=format:'%h %ad %an %s' --date=short
git log --pretty=format:'%C(yellow)%h%Creset %C(cyan)%ad%Creset %s %C(green)(%an)%Creset' --date=short

Define un alias permanente:

git config --global alias.lg "log --pretty=format:'%C(auto)%h %ad %s %d' --date=short --graph"

Vista de grafo

git log --graph --oneline --all --decorate
git log --graph --first-parent main

Filtrar por contenido

git log -S"FunctionName"
git log -G"regex.*pattern"
git log -L :myFunc:src/file.c
git log -L 100,150:src/file.c

Filtrar por metadatos

git log --since=2.weeks --until=yesterday
git log --author='Alice'
git log --grep='hotfix' --grep='security' --all-match
git log --no-merges
git log --merges --first-parent main
git log --committer='@example.com'

Log restringido por ruta

git log -- src/parser/
git log --diff-filter=D -- secrets.env
git log --follow -- src/old/path.go

Conteo y estadísticas

git shortlog -sne
git log --stat
git log --shortstat
git log --numstat

Recorridos

git log --ancestry-path A..B
git log --boundary --left-right A...B
git log --reverse
git log --topo-order
git log --date-order

Errores comunes

Usar --all cuando quieres --branches. Olvidar --follow en archivos renombrados. Confundir A..B con A...B.

Range-diff para series

git range-diff main..topic-v1 main..topic-v2