Re: refining .gitignores
- From
- Bruce Stephens <bruce.stephens@isode.com>
- Date
- Nov 15, 2007, 11:39 UTC
- Message-ID
- <807ikj3fge.fsf@tiny.isode.net>
- In-Reply-To
- <20071114230258.GG3973@steel.home>
Alex Riesen <raa.lkml@gmail.com> writes:
Show 13 quoted lines
> 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.
Show 5 quoted lines
>> 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)
doneBut that feels kind of clunky. I feel I'm missing something basic about how git ls-files is intended to work, or something.