Git-ignore certain files in sub-directories, but not all

Solution 1:

I've written a post about such problem recently. See here.

Basically what you need is to put one .gitignore with *.json in the /data/ directory.

UPD: Since git 1.8.4 (1.8.2 if you're using msysgit) it is possible to use double-star patterns, like /data/**/*.json

Solution 2:

you can place data/**/*.json in your .gitignore in /root directory to prevent multiple .gitignore files in different directories

**/ - matches any count of subdirectories (including current)

example: data/**/*.json record will ignore data/1.json, data/subfolder/2.json, data/../../3.json

Solution 3:

This pattern work for me for data subfolder ignoring only png and jpg files:

**/data/**/*.png
**/data/**/*.jpg