git игнорирует все файлы определенного типа, кроме тех, которые находятся в определенной подпапке - PullRequest
161 голосов
/ 07 января 2011

У меня есть такая структура каталогов:

  • корень
    • folder1
      • abc.json
      • def.json
      • somedir
        • more.json
    • folder2
      • qwe.json
      • rty.json
    • спецификация
      • mock1.json
      • mock2.json
      • somedir
        • more_mocks.json

Теперь, используя .gitignore, я хочу игнорировать все *.json файлы, кроме файлов в spec. Я не хочу использовать .gitignore в folder1 и folder2, потому что их множество, и они будут добавлены ко многим, и я уверен, что забуду переместить вправо .gitignore файл на месте.

Кроме того, может быть больше вложенных каталогов с файлами json, и это правило должно применяться и ко всем подкаталогам.

Так как мне игнорировать все файлы типа, кроме определенного подкаталога?

1 Ответ

253 голосов
/ 07 января 2011

Необязательный префикс !, который отменяет шаблон; любой соответствующий файл исключен предыдущий шаблон станет включается снова. Если шаблон отрицательный совпадения, это переопределит ниже источники шаблонов приоритетов.

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

*.json
!spec/*.json
...