web-dev-qa-db-fra.com

Comment faire en sorte que git-diff et git log ignorent les fichiers nouveaux et supprimés?

Parfois, il y a quelques fichiers modifiés avec de nouveaux fichiers supprimés et/ou renommés. En faisant git diff ou git-log Je voudrais les omettre, afin que je puisse mieux repérer les modifications.

En fait, il serait préférable de répertorier les noms des fichiers nouveaux et supprimés sans leur contenu. Pour "ancien" renommé en "nouveau", j'aimerais éventuellement faire la différence entre "ancien" et "nouveau".

138
maaartinus

L'option --diff-filter Fonctionne avec diff et le journal.

J'utilise beaucoup --diff-filter=M Ce qui limite les sorties diff aux seules modifications de contenu.

Pour détecter les renommages et les copies et les utiliser dans la sortie diff, vous pouvez utiliser -M Et -C Respectivement, avec les options R et C pour --diff-filter.

195
CB Bailey
  • Document officiel:
--diff-filter=[(A|C|D|M|R|T|U|X|B)…​[*]]

Sélectionnez uniquement les fichiers qui sont ajoutés (A), copiés (C), supprimés (D), modifiés (M), renommés (R), dont le type (c'est-à-dire fichier normal, lien symbolique, sous-module,…) a été modifié (T), ne sont pas fusionnés (U), sont inconnus (X) ou ont eu leur appariement cassé (B). Toute combinaison de caractères de filtre (y compris aucun) peut être utilisée.

Lorsque * (Tout ou rien) est ajouté à la combinaison, tous les chemins sont sélectionnés s'il existe un fichier qui correspond à d'autres critères dans la comparaison; s'il n'y a pas de fichier correspondant à d'autres critères, rien n'est sélectionné.

En outre, ces lettres majuscules peuvent être réduites à exclure. Par exemple. --diff-filter = l'annonce exclut les chemins ajoutés et supprimés.

Exemple: afficher uniquement les fichiers ajoutés, modifiés et modifiés exclure les fichiers supprimés:

git diff --diff-filter=ACM
44
TeeTracker