J'essaie d'éviter le modèle 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é. C'est git sur Windows. Existe-t-il un moyen plus concis de faire cela sans répéter les choses?
Réponses:
Depuis git 1.8.2, ceci:
Devrait fonctionner selon cette réponse . Cela fonctionne également pour moi dans 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 de manière récursive:
la source
/
au début. Exemple:/MyProject/WebApp/Scripts/special/**/*.js
.gitignore
dans cette question était dans la racine du dépôt (répertoire parent de/Webapp
).foo/bar/*/*
(deuxième ligne)!foo/bar/**/*.js
Cela n'a fonctionné que pour un niveau de sous-répertoires, mais pas de manière récursive.Suite de la page de manuel de gitignore:
Donc, cela signifie clairement qu'il n'y a aucun moyen de spécifier un certain nombre de répertoires entre deux chaînes, comme entre
special
etjs
.Néanmoins, vous pouvez avoir un
.gitignore
fichier par répertoire, donc peut-être dans votre cas le contenu suivantà l'endroit suivant
serait suffisant?
la source
MyPrject/WebApp/Scripts/special*.js
et cela correspondaitMyPrject/WebApp/Scripts/specialfile.js
aussi bienMyPrject/WebApp/Scripts/special/a/b/c/file.js
. Cependant, pour une raison quelconque, le comportement a changé et ma solution de contournement actuelle consiste à répertorier les répertoires individuellement. J'utilise GitHub pour Windows.find MyPrject/WebApp/Scripts/special -type d -printf 'echo "*.js" >> %h/.gitignore\n git add %h/.gitignore\n' | sh
Cela fonctionne pour moi sur osx.
la source
Essayez d'exécuter
git rm -r --cached MyPrject/WebApp/Scripts/special/
Votre répertoire mentionné a peut-être été mis en cache par git et apparaîtra sur les fichiers non suivis. Après avoir effacé le cache, assurez-vous de l'avoir mentionné.gitignore
.la source