I wanted to exclude a single massive directory from a checkout (the LayoutTests directory from WebKit, which includes 130k files), so I tried: $ git config core.sparsecheckout true $ echo '*' > .git/info/sparse-checkout $ echo '!LayoutTests' >> .git/info/sparse-checkout $ git read-tree -m -u HEAD But LayoutTests is not being excluded. I also tried every variation of including leading/trailing slash and trailing '*'. Simple repro: git init sparse-test && cd sparse-test && touch foo && mkdir bar && touch bar/baz && git add foo bar/baz && git commit -m initial && git config core.sparsecheckout true && echo '*' > .git/info/sparse-checkout && echo '!bar' >> .git/info/sparse-checkout && git read-tree -m -u HEAD && ls -1R foo bar: baz j. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html