git excludes vs ignores

prosseek picture prosseek · Apr 8, 2012 · Viewed 14.7k times · Source

I use Tower for using Git in Mac. The settings in Tower has Ignores section which creates the .gitignore, but it has another section named "Excludes". And it seems like that one can use excludes with "# git ls-files --others --exclude-from=.git/info/exclude".

Tower screenshot

What Excludes is for? Why one needs excludes when gitignore is available?

Answer

Matthew Flaschen picture Matthew Flaschen · Apr 8, 2012

It's a list of files that are not in .gitignore (which can be versioned), but which you want to exclude on your machine's copy of the repo.

From the docs:

Patterns which are specific to a particular repository but which do not need to be shared with other related repositories (e.g., auxiliary files that live inside the repository but are specific to one user's workflow) should go into the $GIT_DIR/info/exclude file.

Note that .git/info/exclude can not be versioned because it's in the .git directory.