Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

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

Descrizione

Il comando git log visualizza la storia dei commit raggiungibili da uno o più ref (default: HEAD). È uno degli strumenti più flessibili in Git, supportando filtri per autore, data, contenuto del messaggio, path di file e altro. Combinato con opzioni di formattazione, può produrre output adatto a changelog, audit e archeologia del codice.

Idiomi utili includono git log --oneline --graph --decorate --all per una vista compatta e visiva dell'intera storia, e git log -p per vedere le patch in linea. Argomenti pathspec restringono il log a commit che hanno toccato file specifici.

Nell'uso quotidiano, git log si integra con alias e CI.

Capire il modello dati di Git aiuta a prevedere i risultati.

Opzioni comuni

OpzioneDescrizione
--onelineUn commit per riga, SHA abbreviato + oggetto.
--graphArte ASCII della struttura di branch e merge.
--allInclude tutti i ref, non solo HEAD.
-p, --patchMostra i diff accanto a ogni commit.
--statMostra statistiche di file modificati.
--author=<pattern>Filtra per autore.
--since / --untilFiltra per data.
-S <string>Pickaxe: trova commit che aggiungono/rimuovono questa stringa.
--followTraccia la storia di un singolo file attraverso i rename.

Esempi

git log --oneline --graph --decorate --all
# Storia visiva compatta di tutto

git log -p src/auth.py
# Diff completi di ogni commit che tocca auth.py

git log -S "TODO" --since="2 weeks ago"
# Trova commit recenti che hanno aggiunto o rimosso "TODO"

git log --author="alice" --pretty=format:"%h %s" -n 20
# Ultimi 20 commit di alice in formato personalizzato

Errori comuni

Dimenticare che git log file.txt mostra solo i commit dove file.txt esisteva — usa --follow se è stato rinominato. Affidarsi troppo a --grep quando in realtà vuoi -S (che cerca nei diff, non nei messaggi). E su repo enormi, git log -p senza un path può produrre gigabyte di output.

Comandi correlati

git show, git blame, git shortlog, git diff