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".
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
.
--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