Search code examples
gitgitignore

.gitignore exclude files in directory but not certain directories


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.


Solution

  • 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).