How to I add something to the .gitignore
so that the match is not recursive?
For example, I wish to ignore the directory foo
and the file
The solution is to place a leading slash on the .gitignore
entries:
/foo/
/bar.txt
(I thought I tried this before posting on StackOverflow, but clearly I hadn't tried it properly, as this works perfectly.)
From the gitignore manpage:
An optional prefix ! which negates the pattern; any matching file excluded by a previous pattern will become included again. If a negated pattern matches, this will override lower precedence patterns sources.
So !*
as the first line in your .gitignore will clear all previous patterns.