2010-09-11 18 views
43

Voglio ottenere una rapida panoramica delle modifiche locali nel mio repository, ma non voglio un diff che mostri i file cancellati, poiché ogni singola riga è un segno meno.Eliminazione dei diff per i file cancellati in git

Fondamentalmente, voglio qualcosa come 'git diff HEAD <list of modified files only>'. In un mondo ideale, sarebbe preceduto dall'elenco di file cancellati e aggiunti, ma non mostrare le differenze all'interno di essi.

ero maggior parte del modo attraverso la scrittura di un programma di utilità che fa questo:

git diff HEAD `git status | grep modified | cut -d : -f 2` 

quando mi sono chiesto se ci fosse un modo git-y per farlo, invece. C'è una bandiera che mi manca? Mi piacerebbe anche preservare l'output a colori.

risposta

66

Si può fare questo con l'opzione --diff-filter e specificando tutti, ma la (cancellato) criteri di "D":

 
$ git diff --diff-filter=ACMRTUXB 
+12

--diff-filter = M per le sole modifiche – jackocnr

+4

o semplicemente 'git diff --diff-filter = d' – Pithikos

19

git diff (-D|--irreversible-delete) sarà omettere il corpo diff per i file eliminati. Non penso ci sia un equivalente per i file aggiunti.

1

Si può anche utilizzare -M che cercano di trovare i file che è stato spostato

git diff -M -D 

più possono ottenere maggiori informazioni con: git diff --help (opzione -B potrebbe anche essere interessante)

11

quasi stessa risposta postato Dan Moulding, ma probabilmente si desidera specificare cosa si non si vuole mostrare, e per nascondere i file cancellato sarà:

git diff --diff-filter=d 
Problemi correlati