154 votes

Comment .gitignore les fichiers de manière récursive ?

J'essaie d'éviter le modèle suivant dans mon fichier .gitignore fichier.

MyPrject/WebApp/Scripts/special/*.js
MyPrject/WebApp/Scripts/special/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*/*.js

Nous avons essayé :

MyPrject/WebApp/Scripts/special/**.js
MyPrject/WebApp/Scripts/special/**/*.js

Mais cela n'a pas fonctionné. Il s'agit de git sous Windows. Existe-t-il un moyen plus concis de faire cela sans répéter les choses ?

166voto

Sam Points 1757

A partir de git 1.8.2, ceci :

MyPrject/WebApp/Scripts/special/**/*.js

Devrait fonctionner selon cette réponse . Cela fonctionne également pour moi sous Windows 7 en utilisant Sourcetree 1.6.12.0 et la version de git qu'il installe (1.8.4-preview20130916).

Pour gitignore chaque fichier et dossier sous un répertoire récursivement :

MyPrject/WebApp/Scripts/special/**

26voto

Suivant la page de manuel de gitignore :

[...] git traite le motif comme un glob shell convenant à consommation par fnmatch(3) avec l'option FNM_PATHNAME : les caractères génériques dans le motif ne correspondra pas à un / dans le chemin d'accès.

Donc, cela signifie clairement qu'il n'y a aucun moyen de spécifier un certain nombre de répertoires entre deux chaînes de caractères, comme entre special y js .

Néanmoins, vous pouvez avoir un .gitignore par répertoire, donc peut-être dans votre cas le contenu suivant

*.js

à l'endroit suivant

MyPrject/WebApp/Scripts/special/.gitignore

serait suffisante ?

24voto

Jonathan Points 11

Cela fonctionne pour moi sur osx.

lib64/**/__pycache__/
lib/**/__pycache__/
*.py[cod]
.ipynb_checkpoints/
**/.ipynb_checkpoints/
.DS_Store
**/.DS_Store

5voto

Pradipta Sarma Points 120

Essayez d'exécuter git rm -r --cached MyPrject/WebApp/Scripts/special/ Le répertoire mentionné peut avoir été mis en cache par git et apparaîtra sur les fichiers non suivis. Après avoir effacé le cache, assurez-vous qu'il est mentionné dans le répertoire .gitignore .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X