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