Différence entre ** et * glob d'appariement.gitignore)
J'ai le répertoire suivant la structure et les fichiers.
pw-spec/
|-- event_spec.coffee
|-- event_spec.js
|-- integration
| `-- service
| |-- auth_spec.coffee
| |-- auth_spec.js
| |-- chat_spec.coffee
| |-- chat_spec.js
| |-- transport_spec.coffee
| `-- transport_spec.js
|-- message_spec.coffee
|-- message_spec.js
|-- pw_spec.coffee
|-- pw_spec.js
|-- run.coffee
|-- run.html
|-- run.js
|-- service
| |-- auth_spec.coffee
| |-- auth_spec.js
| |-- chat_spec.coffee
| |-- chat_spec.js
| |-- stream_spec.coffee
| `-- stream_spec.js
|-- spec.coffee
|-- spec.js
`-- stub
|-- stream.coffee
|-- stream.js
|-- transport.coffee
`-- transport.js
4 directories, 27 files
Je voudrais ignorer toutes les *.js
fichiers de n'importe où dans pw-spec
répertoire.
Cependant, en ajoutant des modèles suivants à .gitignore
ne coupe pas:
pw-spec/*.js
pw-spec/**/*.js
Le problème est que le second correspond uniquement aux fichiers js qui sont exactement de niveau 1
profondément à l'intérieur de l'arbre, alors que je veux correspondre à tous les fichiers js sous pw-spec
.
Faire
ls pw-spec/**/*.js
produit [1]:
pw-spec/service/auth_spec.js
pw-spec/service/chat_spec.js
pw-spec/service/stream_spec.js
pw-spec/stub/stream.js
pw-spec/stub/transport.js
Comme vous pouvez le voir
pw-spec/integration/service/auth_spec.js
pw-spec/integration/service/chat_spec.js
pw-spec/integration/service/transport_spec.js
sont manquantes à partir de [1].
OriginalL'auteur Emil Ivanov | 2012-01-12
Vous devez vous connecter pour publier un commentaire.
La différence est que
**
ne fonctionne pas, du moins pas pour tout le monde. VoirPourquoi ne pas gitignore de travail dans ce cas?
Vous pouvez avoir une
.gitignore
danspw-spec/
OriginalL'auteur Mischa Arefiev
Il existe deux approches pour ce type de situation, en fonction de vos besoins.
Une solution est de mettre
dans pw-spec/.gitignore.
La deuxième solution est de mettre:
et ainsi de suite dans la main .gitignore fichier.Cette approche est fragile si plusieurs sous-répertoires sont ajoutés.
En général, je préfère les mettre à l' .gitignore fichier au même niveau que le fichier Makefile qui génère les fichiers que je suis ignorant.
pw-spec/**/*.js
. Voir cette réponse.OriginalL'auteur Ben Martin
Créer un
.gitignore
danspw-spec
dans laquelle vous pouvez insérer ces deux lignes:Notez également que si vous avez déjà des fichiers enregistrés dans cette sous-répertoire qui vous voulez "sans traces", vous devez vous rendre inconnu à l'index en tant que tel:
Par exemple, si dans le répertoire
pw-spec
que vous pouvez faire:.gitignore
danspw-spec
. Cependant,*.js
ne correspond pas seulement les descendants directs depw-spec
, et ne correspond pas à.js
fichiers dans des sous-répertoires.Ouais, j'ai mixé avec
.git/info/exclude
... Tenir surVoir mise à jour du post, il Fonctionne Pour Moi(tm)
Hmm, qu'elle n'en résout. J'ai mis le
.gitignore
fichier dans le parent depw-spec
car il existe une autre dir avec des exigences similaires (j'ai omis pour des raisons de concision). Si je ne trouve pas de solution je vais tout simplement utiliser 2.gitignore
fichiers.Peut-être essayer un seul .gitignore à la racine avec 'x/*.js' et 'x/*/*.js "pour un répertoire de "x"? (Note: non testé)
OriginalL'auteur fge