Existe-t-il une option pour restreindre git diff
à un ensemble donné d'extensions de fichiers?
git
file-extension
vfclists
la source
la source
git diff -- *.{c,h,etc}
git diff master HEAD -- "*filename.txt"
aussi utile est legit diff master HEAD --name-only
''
) sont également importants!git diff -- src/*.js
devrait êtregit diff -- 'src/*.js'
Pour inclure des fichiers de manière récursive (y compris le répertoire actuel), cela a fonctionné pour moi:
la source
git diff -- '***.py' ':!.Trashes'
Soit utilisez la globstar de votre shell (qui effectue une recherche récursive) 1 , 2 :
ou utilisez find:
Ces deux éléments sont des noms spéciaux et des espaces protégés. Bien que vous souhaitiez peut-être filtrer les répertoires ayant l'extension .py :)
1 J'aime faire d'
git diff -- {.,**}/*.py
habitude2 Lorsque globstar est activé,
git diff -- **/*.py
inclut déjà./*.py
. Dans la page de manuel de Bash: 'Si suivi d'un /, deux * adjacents correspondront uniquement aux répertoires et sous-répertoires.'la source
Pour les modèles de fichiers simples, cela semble fonctionner:
Les espaces blancs sont sécurisés et vous pouvez également avoir plusieurs extensions:
la source
Argument de ligne de commande pour l'extension.
Dans l'alternative, vous pouvez accéder
find
àgit diff
:la source
git diff *.py
et sans les en- têtes en criantComme testé sur git version 2.18.0, l'extension de fichier doit être entre guillemets. Si vous souhaitez trouver les dernières différences entre votre référentiel local et le référentiel distant, après l'extraction, vous pouvez utiliser:
Par exemple:
la source
git diff master@{1} origin/master --name-only -- "*.cs"
Aucune des réponses ci-dessus ne semble fonctionner pour moi sous
git bash
Windows. Je ne sais pas si c'est une chose de version (j'utilise 1.8.4) ou une chose Windows / bash; aussi, dans mon cas, je voulais différencier deux branches où chaque branche avait des fichiers supplémentaires non présents dans l'autre branche (donc les fichiers basés sur «trouver» sont négligés).Quoi qu'il en soit, cela a fonctionné pour moi (dans mon exemple, à la recherche d'un diff entre les fichiers python):
la source
git diff
affichera uniquement les différences dans les fichiers non mis en scène.J'ai trouvé cette question parce que je voulais exclure des
.info
fichiers degit diff
. J'ai réalisé cela en le mettant en scène avecgit add *.info
, ce qui réduit les fichiers restants.la source
J'ai fini avec ceci:
Cela affiche les différences pour la validation spécifiée uniquement si le nom de fichier contient le mot «test» (insensible à la casse) et ne se termine pas par
.sql
, modifiez le pipeline si nécessaire pour votre cas.la source