2011-05-25 5 views
33

Un mio collega ha controllato alcune modifiche a Git, e voglio vedere esattamente quali sono stati questi cambiamenti. In altre parole, il diff tra il suo check-in e il suo genitore.Git - il modo più semplice per vedere diff con la versione precedente se ho lo sha

quello che sembrava logico per me è stato quello di eseguire questo comando:

git diff shaOfHisCheckIn 

Ma questo non ha funzionato. Sembra mostrare la differenza tra quello SHA e la mia copia di lavoro corrente.

Qual è il comando corretto per mostrare il diff tra un dato SHA e il suo genitore?

risposta

54

git show è tuo amico:

git show shaOfHisCheckIn 
+0

Grazie, questo è esattamente quello che mi serve, ed è facile da ricordare e da digitare. –

+0

Prego! A proposito, funziona anche per i tag ('git show ') - è un comando davvero utile. –

1

git diff shaOfHisCheckIn shaOfHisCheckIn^

4

Prova questo:

git diff shaOfHisCheckIn^ shaOfHisCheckIn 

o

git diff shaOfHisCheckIn{^,} 
6

Se si desidera visualizzare il di ff visivamente in kdiff3, meld, kompare, xxdiff, tkdiff, diffuse ...

git difftool --dir-diff shaOfHisCheckIn^! 

git difftool --tool=meld --dir-diff shaOfHisCheckIn^! 

git difftool -t meld -d shaOfHisCheckIn^!