The patterns in question do contain a slash, although they don't start with a slash. I tried changing it to "!/.vim/colors/*" as you recommended, with no change in behavior. I even tried adding a leading slash to every pattern in gitignore, with no effect. Removing the line with "!/.vim/colors/*" still fixes the problem. Brian Levinstein blevinstein@xxxxxxxxx | bpl4ab@xxxxxxxxxxxx (703) 673-8711 Google | Software Engineer University of Virginia | MS Commerce 2014 University of Virginia | BS Computer Science 2013 Alpha Tau Omega | Delta Chapter http://www.linkedin.com/pub/brian-levinstein/14/620/6ba https://github.com/blevinstein On Fri, Sep 2, 2016 at 4:58 PM, Stefan Beller <sbeller@xxxxxxxxxx> wrote: > On Fri, Sep 2, 2016 at 4:06 PM, Brian Levinstein <blevinstein@xxxxxxxxx> wrote: >> The relevant repo is here: >> https://github.com/blevinstein/dotfiles >> >> My gitignore file looks like this: >> https://github.com/blevinstein/dotfiles/blob/2400ca8642a7b454a2bfc54e8402343d008836aa/.gitignore >> It basically ignores all files, except for specifically whitelisted >> files. However, when I run "git status" (git version >> 2.8.0.rc3.226.g39d4020), I see the following untracked files: >> >> # .bash_history >> # .bash_logout >> # .cache/ >> # [private] >> # [private] >> # .profile >> # .viminfo >> # dev/ > > For the specific files to be exclued, I'd recommend starting with a slash, e.g. > > !/.bashrc > !/.vim/colors/* > > If the pattern does not contain a slash /, Git treats it as a shell > glob pattern and checks > for a match against the pathname relative to the location of the > .gitignore file (relative > to the toplevel of the work tree if not from a .gitignore file). > > See the notes section of https://git-scm.com/docs/gitignore > > So I do not quite see the bug? > > Stefan