218 votes

git ignore tous les fichiers d'un certain type, sauf ceux qui se trouvent dans 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
        • plus_mocks.json

Utilisant maintenant un .gitignore Je veux ignorer tout *.json à l'exception de ceux qui se trouvent dans le spec . Je ne veux pas utiliser un .gitignore sur folder1 et folder2 parce qu'il y en a une tonne et qu'elles seront souvent ajoutées, et je suis sûr que j'oublierai de déplacer la droite .gitignore en place.

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

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

348voto

Amber Points 159296

Un préfixe facultatif ! qui annule le motif ; tout fichier correspondant exclu par un motif un motif précédent sera à nouveau inclus à nouveau. Si un motif annulé correspond, il remplacera les sources de sources de motifs de préséance inférieure.

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

*.json
!spec/*.json

5 votes

Vous pouvez également ajouter un .gitignore à spec qui contient !/*.json, si vous préférez.

2 votes

Merci ! Bien que dans mon cas, j'ai réalisé que je ne voulais rien ignorer du tout dans mon répertoire spec. Je peux donc m'en sortir avec un très simple !spec . Fonctionne comme un charme.

7 votes

Alors que la réponse d'Amber fonctionne lorsque spec est un répertoire de premier niveau (i.e. /spec), elle ne fonctionne pas pour moi lorsque spec est un sous-répertoire, par exemple /a/spec ou a/b/spec. Utilisation de git 1.7.5.4

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X