Come usare git diff: commit, rami, file e affiancati
Un comando confronta la cartella di lavoro, l'area di staging, i commit, i rami e i tag. Ecco quale forma utilizzare per ciascuno, perché due punti e tre punti differiscono e come ottenere una vera differenza affiancata.
Scritto da Kodmora
La software house dietro GitTree
- Commetti la cronologia
- Rami
- Commit
In questa pagina
`git diff` senza argomenti mostra le modifiche che non hai preparato. `git diff --staged` mostra cosa conterrà il prossimo commit e `git diff main feature` confronta due rami. Aggiungi -- path/to/file a qualsiasi modulo per limitarlo a un file. Git stesso non ha una vista affiancata nel terminale. Per questo hai bisogno di git difftool o di una GUI Git.
Di quale comando git diff ho bisogno?
| Vuoi vedere | Comando |
|---|---|
| Modifiche non ancora implementate | git diff |
| Cosa conterrà il prossimo commit | git diff --staged |
| Tutto dall'ultimo commit | git diff HEAD |
| Due commit | git diff <a> <b> |
| Due rami, da punta a punta | git diff main feature |
| Ciò che un ramo ha aggiunto da quando si è diviso | git diff main...feature |
| Due tag | git diff v1.0 v2.0 |
| Un fascicolo | git diff -- src/search.ts |
Come leggo l'output di git diff?
diff --git a/src/search.ts b/src/search.ts
index 4e1f2a0..9b3c7d1 100644
--- a/src/search.ts
+++ b/src/search.ts
@@ -12,7 +12,7 @@ export function search(query: string) {
const terms = tokenize(query);
- return index.find(terms, { limit: 20 });
+ return index.find(terms, { limit: 50 });
}---e+++nominano la vecchia e la nuova versione del file.@@ -12,7 +12,7 @@è un'intestazione di blocco: 7 righe dalla riga 12 in ciascuna versione.- Le righe che iniziano con
-sono state rimosse, le righe con+sono state aggiunte, il resto è contesto.
La lezione sulle differenze di lettura mette in pratica questo passo dopo passo.
Come faccio a differenziare due commit?
# any two commits, older first
git diff 3e52f10 7c1d9ab
# the last commit against the one before it
git diff HEAD~1 HEAD
# one commit against its parent, with the message
git show 7c1d9abCome faccio a differenziare due rami?
# the tips of both branches
git diff main feature
# only what feature added since it left main
git diff main...feature
# a remote branch
git fetch origin
git diff main origin/mainCome faccio a differenziare un file?
# working copy against the last commit
git diff HEAD -- src/search.ts
# the same file on two branches
git diff main feature -- src/search.ts
# a file at two commits
git diff HEAD~3 HEAD -- src/search.ts
# two files outside any repository
git diff --no-index old.txt new.txtCome faccio a fare in modo che git diff ignori gli spazi bianchi?
| Opzione | Ciò che ignora |
|---|---|
-w o --ignore-all-space | Tutti gli spazi bianchi, comprese le righe rientrate |
-b o --ignore-space-change | Cambiamenti nella quantità di spazi bianchi |
--ignore-space-at-eol | Spazio bianco alla fine delle righe |
--ignore-blank-lines | Aggiunte o rimosse righe vuote |
Questi influenzano solo ciò che mostra la differenza. Non cambiano ciò che viene in stage o commesso. -w è quello a cui rivolgersi quando un nuovo rientro fa sembrare cambiato l'intero file.
Come faccio a elencare solo i file modificati?
# names only
git diff --name-only main...feature
# names with A, M, D or R
git diff --name-status main...feature
# lines added and removed per file
git diff --stat main...featureCome faccio a vedere quali parole sono cambiate?
git diff --word-diff
git diff --color-wordsLe differenze di parola aiutano con righe lunghe, come i paragrafi Markdown, in cui una parola modificata contrassegna l'intera riga come modificata.
Come posso ottenere una differenza affiancata?
Semplice git diff stampa una singola colonna e non dispone di opzioni affiancate. Hai tre modi per ottenere due colonne: puntare git difftool su un programma diff, installare un cercapersone terminale come delta o utilizzare una GUI Git.
# pick a tool once
git config --global diff.tool vimdiff
# open each changed file in it
git difftool main...feature
# skip the prompt for each file
git difftool -yCome leggere una differenza affiancata in GitTree
Apri un diff
Seleziona un file modificato nelle modifiche di lavoro o in qualsiasi commit.
Scegli la vista
In Visualizzazione differenze sopra la differenza, scegli Hunk, Inline o Dividi. Dividi mostra il prima e il dopo uno accanto all'altro.
Regolalo
Dalla tavolozza dei comandi, esegui Ignora spazi bianchi nelle differenze, Evidenzia parole modificate o Avvolgi linee diff.
Confronta due rami
Esegui Confronta riferimenti… per scegliere due rami, tag o commit qualsiasi e vedere le modifiche dalla base di unione o da punta a punta.

Vedi scegli e usa una vista differenziale e confronta riferimenti per ogni opzione.
Domande frequenti
Perché git diff non mostra nulla?
Probabilmente le tue modifiche sono in stage. git diff confronta la cartella di lavoro con l'area di staging, quindi esegui git diff --staged o git diff HEAD. I nuovi file non tracciati non verranno mai visualizzati finché non li aggiungerai.
Qual è la differenza tra git diff e git status?
git status elenca quali file sono stati modificati. git diff mostra le righe modificate al loro interno.
Come posso confrontare il mio ramo con quello principale?
Esegui git diff main...HEAD per vedere solo il lavoro della tua ramo. Recupera prima e utilizza origin/main per confrontare con l'ultima versione remota.
Git diff --cached è uguale a --staged?
SÌ. Sono due nomi per la stessa opzione.
Come faccio a salvare un diff in un file?
Esegui git diff > changes.patch. Puoi applicare il file in un secondo momento, come mostrato in come creare e applicare una patch.
Fonti
Le affermazioni su altri prodotti sono state confrontate con le rispettive pagine ufficiali in data 7 novembre 2026. Cambiano prezzi e caratteristiche; le pagine dei venditori sono la fonte della verità.
