Oltre il default
git log e un piccolo linguaggio di query per la storia. Con i flag giusti produce report di qualita dashboard, audit trail e analisi forense dei bug.
Formati 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
git config --global alias.lg "log --pretty=format:'%C(auto)%h %ad %s %d' --date=short --graph"
Vista grafo
git log --graph --oneline --all --decorate
git log --graph --first-parent main
Filtraggio per contenuto
git log -S"FunctionName"
git log -G"regex.*pattern"
git log -L :myFunc:src/file.c
git log -L 100,150:src/file.c
Filtraggio per metadati
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 per percorso
git log -- src/parser/
git log --diff-filter=D -- secrets.env
git log --follow -- src/old/path.go
Conteggi e statistiche
git shortlog -sne
git log --stat
git log --shortstat
git log --numstat
Cammini
git log --ancestry-path A..B
git log --boundary --left-right A...B
git log --reverse
git log --topo-order
git log --date-order
Errori comuni
Usare --all quando si intende --branches. Confondere A..B con A...B.
Range-diff per serie
git range-diff main..topic-v1 main..topic-v2