Correctly ignore all files recursively under a specific folder except for a specific file type

@SimonBuchan is correct.

Since git 1.8.2, Resources/** !Resources/**/*.foo works.

The best answer is to add a Resources/.gitignore file under Resources containing:

# Ignore any file in this directory except for this file and *.foo files

If you are unwilling or unable to add that .gitignore file, there is an inelegant solution:

# Ignore any file but *.foo under Resources. Update this if we add deeper directories

You will need to edit that pattern if you add directories deeper than specified.

This might look stupid, but check if you haven't already added the folder/files you are trying to ignore to the index before. If you did, it does not matter what you put in your .gitignore file, the folders/files will still be staged.