Michael Goerz Michael Goerz - 2 months ago 8
Git Question

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?

Answer

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.