Search code examples
gitgitignore

How do I tell Git to ignore everything except a subdirectory?


I want to ignore all files in my repository except those that occur in the bin subdirectory. I tried adding the following to my .gitignore:

*
!bin/*

This does not have the desired effect, however: I created a new file inside of bin/, but doing git status still shows nothing to commit (working directory clean).

Any suggestions?


Solution

  • This ignores root files & root directories, then un-ignores the root bin directory:

    /*
    /*/
    !/bin/
    

    This way you get all of the bin directory, including subdirectories and their files.