Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git blame [-L <range>] [-w] [-M] [-C] <file>

Descrizione

Il comando git blame annota ogni riga di un file con il commit, autore e timestamp che l'ha toccata per ultimo. È prezioso per capire perché un pezzo di codice ha quell'aspetto, chi l'ha introdotto e quando. Nonostante il nome accusatorio, blame è usato per lo più come strumento di ricerca, non come mezzo di puntare il dito.

Blame può seguire il codice mentre veniva spostato o copiato (con -M e -C), e può ignorare commit di solo whitespace o solo formattazione se mantieni un file .git-blame-ignore-revs referenziato via blame.ignoreRevsFile.

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

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

Opzioni comuni

OpzioneDescrizione
-L <start>,<end>Limita blame a un intervallo di righe.
-wIgnora modifiche di whitespace.
-MRileva righe spostate all'interno di un file.
-CRileva righe copiate da altri file (ripeti per rilevamento più forte).
--since=<date>Smette di annotare prima di questa data.
-e, --show-emailMostra l'email dell'autore invece del nome.
--ignore-revs-file <file>Salta le revisioni elencate quando assegna blame.

Esempi

git blame src/parser.c
# Annota ogni riga

git blame -L 50,100 src/parser.c
# Solo righe da 50 a 100

git blame -w -M -C README.md
# Ignora whitespace e rileva spostamenti/copie

git blame --ignore-revs-file .git-blame-ignore-revs file.js
# Salta commit di formattazione rumorosi

Errori comuni

Usare blame per assegnare colpa piuttosto che per investigare il contesto crea una cultura ostile. Abbina blame a git log sul commit incriminato per leggere il messaggio completo e l'intento. Dopo formattazione di massa, configura .git-blame-ignore-revs così che blame punti ancora ad autori significativi.

Comandi correlati

git log -L, git log -S, git show, git annotate