web-dev-qa-db-fra.com

Comment faire pour que les fichiers .gitignore récursivement

J'essaie d'éviter le motif suivant dans mon .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

Cela n'a cependant pas fonctionné. Ceci est git sur Windows. Y a-t-il un moyen plus concis de faire cela sans répéter les choses?

78
orad

À partir de la version 1.8.2, ceci:

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

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

Pour gitignorer tous les fichiers et dossiers d’un répertoire de manière récursive:

MyPrject/WebApp/Scripts/special/**
85
Sam

Suite à la page de manuel de gitignore:

[...] git considère le modèle comme un glob Shell qui convient à la consommation de fnmatch (3) avec l'indicateur FNM_PATHNAME: les caractères génériques dans le modèle ne correspondront pas à/dans le chemin.

Donc, cela signifie clairement qu'il n'y a aucun moyen de spécifier ne certaine quantité de répertoires entre deux chaînes, comme entre special et js.

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

*.js

à l'endroit suivant

MyPrject/WebApp/Scripts/special/.gitignore

serait suffisant?

17