Tengo una estructura de directorios como esta:
- raíz
- carpeta1
- abc.json
- def.json
- somedir
- more.json
- carpeta2
- qwe.json
- rty.json
- Especificaciones
- mock1.json
- mock2.json
- somedir
- more_mocks.json
- carpeta1
Ahora usando un .gitignoreQuiero ignorar todos los *.jsonarchivos excepto los que están en el spec. No quiero usar un .gitignorein folder1y folder2porque hay un montón de estos y se agregarán a muchos, y estoy seguro de que olvidaré mover el .gitignorearchivo correcto en su lugar.
Además, puede haber más directorios anidados con archivos json, y esta regla también debe aplicarse a todos los subdirectorios.
Entonces, ¿cómo ignoro todos los archivos de un tipo, excepto un cierto subdirectorio?

!spec. Funciona de maravilla.jsonarchivosspecdirectamente, no el que está en elsomedirsubdirectorio de la pregunta. Necesitaba usar!spec/**/*.jsonpara asegurarme de que tambiénmore_mocks.jsonestaba comprometido.