.gitignore exclude files in directory but not certain directories

Matthew picture Matthew · Apr 8, 2011 · Viewed 91.3k times · Source
application/cache/*
application/cache/folder/*
application/cache/folder/onemorefolder/*

This doesn't seem to be working. When I clone the project, there is no "application/cache" folder or "application/cache/folder" folder, etc...

I'd like if files in the cache folders weren't cached but folders were, so that the folders permissions transfer and exist.

Answer

mipadi picture mipadi · Apr 8, 2011

Git doesn't track folders, only files, so if you ignore everything in a folder, Git won't have anything to track. You can add a .gitignore file to each directory (application/cache, application/cache/folder, application/cache/folder/onemorefolder/) with the following contents:

*
!.gitignore

Then, you can add those directories, and only the .gitignore file in each directory will get added -- but this means the directories will now be tracked (i.e., created when cloning).