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