Git Diff
Ultimo aggiornamento
git diff mostra le modifiche esatte, riga per riga, tra due stati del repository. Senza argomenti mostra ciò che hai modificato ma non ancora messo in staging. Aggiungi --staged per vedere cosa c'è nello staging, indica due commit o branch per confrontarli, oppure indica un file per restringere il confronto.
Prova questi comandi nel terminal playground: una vera shell nel tuo browser, senza installare nulla.
Sintassi
| Comando | Cosa fa |
|---|---|
git diff | Modifiche non in staging rispetto all'index |
git diff --staged | Modifiche in staging rispetto all'ultimo commit |
git diff HEAD | Tutte le modifiche dall'ultimo commit |
git diff main feature | Differenze tra due branch |
git diff <hash1> <hash2> | Differenze tra due commit |
git diff -- file.txt | Modifiche a un singolo file |
Casi comuni
| Obiettivo | Comando |
|---|---|
| Vedere cosa stai per committare | git diff --staged |
| Vedere il lavoro non committato | git diff |
| Confrontare il tuo branch con main | git diff main |
| Solo i nomi dei file modificati | git diff --name-only |
Domande frequenti su git diff
Cosa mostra git diff per impostazione predefinita?
Senza argomenti,
git diff mostra le modifiche nella directory di lavoro che non sono ancora in staging, cioè ciò che hai modificato dall'ultimo git add. Per vedere cosa hai già messo in staging (e finirà nel prossimo commit) usa git diff --staged; per vedere tutto dall'ultimo commit usa git diff HEAD.Che differenza c'è tra git diff e git diff --staged?
git diff confronta la directory di lavoro con l'area di staging (modifiche non in staging). git diff --staged (o --cached) confronta l'area di staging con l'ultimo commit (modifiche in staging). Insieme mostrano le due metà del tuo lavoro non committato.Come faccio il diff tra due branch o due commit?
Indicali:
git diff main feature mostra cosa cambia tra i due branch, e git diff <hash1> <hash2> confronta due commit. Aggiungi -- <file> alla fine per limitare il confronto a un solo file.Come vedo solo quali file sono cambiati, senza il diff completo?
Usa
git diff --name-only per avere solo i nomi dei file, oppure git diff --stat per un riepilogo con ogni file e quante righe sono cambiate. Sono comodi per una panoramica veloce prima di leggere il diff completo riga per riga.Posso esercitarmi online?
Sì. Apri il terminal playground per eseguire
git diff in una vera shell nel tuo browser, senza installare nulla. Il corso interattivo gratuito di Git di Coddy spiega anche come esaminare le modifiche passo dopo passo.