git ignore tous les fichiers d'un certain type, sauf ceux d'un sous-dossier spécifique

J'ai une structure de répertoire comme ceci:

  • racine
    • dossier 1
      • abc.json
      • def.json
      • somedir
        • plus.json
    • dossier2
      • qwe.json
      • rty.json
    • spec
      • mock1.json
      • mock2.json
      • somedir
        • more_mocks.json

Maintenant, en utilisant un .gitignore Je veux ignorer tout *.json fichiers à l'exception de ceux du spec. Je ne veux pas utiliser un .gitignore dans folder1 et folder2 car il y en a une tonne et ils seront ajoutés à beaucoup, et je suis sûr que j'oublierai de déplacer le bon fichier .gitignore en place.

En outre, il peut y avoir plus de répertoires imbriqués avec des fichiers json, et cette règle doit également s'appliquer à tous les sous-répertoires.

Alors, comment ignorer tous les fichiers d'un type, à l'exception d'un certain sous-répertoire?

137
demandé sur Alex Wayne 2011-01-07 02:22:12

1 réponses

Un préfixe optionnel {[1] } qui annule motif; tout fichier correspondant exclu par un modèle précédent deviendra inclus de nouveau. Si un motif nié correspond, cela remplacera inférieur sources de modèles de priorité.

Http://schacon.github.com/git/gitignore.html

*.json
!spec/*.json
217
répondu Amber 2012-05-24 10:57:44