Alex Riesen <raa.lkml@xxxxxxxxx> writes: > Bruce Stephens, Wed, Nov 14, 2007 23:36:06 +0100: >> How do I get a list of files (in HEAD, say) that would be ignored by >> the .gitignore files (and the other usual settings)? >> >> It feels like something like this ought to work: >> >> git ls-files -z | xargs -0 git ls-files --ignored >> >> But listing its arguments that are ignored by .gitignore (etc.) >> doesn't seem to be what "git ls-files --ignored" does. Or at least, >> not quite as straightforwardly as that. > > git ls-files --exclude-per-directory=.gitignore -X .git/info/exclude -i -o That doesn't seem to work. For example, if I add '*.c' to .gitignores in git.git, I can't seem to get that command to display any .c files. Run on its own, it displays lots of files, but no .c files. Run with an argument (such as builtin-add.c), it displays nothing. >> The motivation is (obviously) that I fear some of the .gitignore >> patterns are too broad, and a reasonable check is that none of the >> files that are already committed would be caught by the patterns. > > git ls-files --exclude-per-directory=.gitignore -X .git/info/exclude -i That also doesn't seem to do quite what I want, and probably in the same way. I see git add returns non-zero error status if a file is ignored, so I can do it with excluded=() for f in $(git ls-files) do git add $f || excluded=($excluded $f) done But that feels kind of clunky. I feel I'm missing something basic about how git ls-files is intended to work, or something. - 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