2010-09-11 4 views
43

Je souhaite obtenir un aperçu rapide des modifications locales dans mon référentiel, mais je ne veux pas de diff qui affiche les fichiers supprimés, car chaque ligne est un moins.Suppression des différences pour les fichiers supprimés dans git

Fondamentalement, je veux quelque chose comme 'git diff HEAD <list of modified files only>'. Dans un monde idéal, il serait précédé de la liste des fichiers supprimés et ajoutés, mais ne montrerait pas les différences en leur sein.

j'étais la plupart du temps par écrit un utilitaire qui fait cela:

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

quand je me suis demandé s'il y avait une certaine façon git-y pour le faire à la place. Y a-t-il un drapeau qui me manque? J'aimerais préserver la sortie de couleur, aussi.

Répondre

66

Vous pouvez le faire avec l'option --diff-filter et en spécifiant tout sauf le « D » (supprimé) critères:

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

--diff-filter = M pour juste les modifications – jackocnr

+4

ou juste 'git diff --diff-filter = d' – Pithikos

19

git diff (-D|--irreversible-delete) omettra le corps diff pour les fichiers supprimés. Je ne pense pas qu'il y ait un équivalent pour les fichiers ajoutés.

1

Vous pouvez également utiliser -M qui tentent de trouver des fichiers qui a été déplacé

git diff -M -D 

plus peut obtenir plus d'informations avec: git diff --help (en option -B pourrait aussi être intéressant)

11

presque même réponse que diffusée Dan Moulding, mais vous voulez sans doute de préciser ce que vous ne faites pas veulent montrer, et pour cacher les fichiers supprimés, il sera:

git diff --diff-filter=d