Git игнорировать все файлы определенного типа, кроме тех, которые указаны в отдельной подпапке
У меня такая структура каталогов:
- корень
- folder1
- abc.json
- def.json
- somedir
- folder2
- спецификации
- mock1.json
- mock2.json
- somedir
Теперь, используя .gitignore
, я хочу игнорировать все файлы *.json
, за исключением тех, что есть в spec
. Я не хочу использовать .gitignore
в folder1
и folder2
, потому что их много, и они будут добавлены к большому количеству, и я уверен, что забуду переместить правильный .gitignore
файл на месте.
Кроме того, в json файлах может быть больше вложенных каталогов, и это правило также должно применяться ко всем подкаталогам.
Итак, как игнорировать все файлы типа, за исключением определенного подкаталога?
Ответы
Ответ 1
Дополнительный префикс !
, который отменяет шаблон; любой сопоставимый файл, исключенный предыдущий шаблон станет снова включен. Если отрицательный шаблон совпадений, это переопределит нижние источники шаблонов приоритетов.
http://schacon.github.com/git/gitignore.html
*.json
!spec/*.json
Ответ 2
Или для какой-то вложенной папки
*.json
!**/metadata/*.json