I am trying to use "git clean -X" to remove object files (which are gitignored) from my source tree, but it appears to miss object files that are in a subdirectory without any git-tracked files: $ git init test Initialized empty Git repository in /home/pberry/tmp/test/.git/ $ cd test $ mkdir foo $ touch foo/bar.o $ echo '*.o' > .gitignore $ git add .gitignore $ git commit -mgitignore [master (root-commit) 6b5ffcb] gitignore 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 .gitignore $ git status # On branch master nothing to commit (working directory clean) $ git clean -d -X -f $ ls foo bar.o It seems to me that bar.o should have been removed, because according to the git-clean docs, -X means "Remove only files ignored by git", and bar.o is definitely being ignored by git. It looks like a very similar bug was reported back in 2010, but not fixed: http://git.661346.n2.nabble.com/BUG-git-clean-X-behaviour-when-gitignore-has-sub-directory-entries-td5575307.html. I've confirmed that the workaround mentioned by Jonathan Nieder in that thread fixes my problem too (removing "dir.flags |= DIR_SHOW_OTHER_DIRECTORIES;" from builtin/clean.c). However I'm guessing from Jonathan's comments that it would be better to fix this bug elsewhere (somewhere in dir.c perhaps). Is anyone interested in following up on this old bug? Alternatively, if someone could give me some guidance as to the best way to go about fixing this bug, I would be glad to submit a patch. Thanks, Paul -- 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