John Szakmeister <john@xxxxxxxxxxxxxxx> writes: > Correct, it appears that if any line in the ignore matches, then it > exits with 0. So it's not that it's ignored, but that there is a > matching line in an ignore file somewhere. I can see the logic in > this if it's meant to be a debugging tools, especially combined with > -v. Simply changing it does affect quite a few tests, but I'm not > sure that it was intentional for negation to be treated this way. I am reasonably sure that the command started its life as a pure debugging aid. The treatment of the negation _might_ impose conflicting goals to its purpose as a debugging aid---a user who debugs his .gitignore file would want to know what causes a thing that wants to be ignored is not or vice versa, and use of the exit status to indicate if it is ignored may not mesh well with its goal as a debugging aid, but I didn't think about the potential issues deeply myself while writing this response. As you mentioned, use of (or not using) "-v" could be used as a sign to see which behaviour the end-user expects, I guess.