threads / discuss / 19513

"git ls-files -i" does not shows ignored files on Windows

Subject: "git ls-files -i" does not shows ignored files on Windows

## tl;dr

2 messages between May 26, 2009 and May 27, 2009.

replies: 1people: 2as markdown or json

Constantine Plotnikov· May 26, 2009, 17:36 UTC · lore

I have encountered a strange problem on Windows (cygwin git 1.6.1.2 and msys git version 1.6.2.2.1669.g7eaf8).

Lets execute the following sequence of commands:

git init echo a >.gitignore echo test >a git ls-files -i --exclude-standard

The last command in the sequence gives an empty output. But "git status" and "git ls-files -o --exclude-standard" show only ".gitignore" file as untracked. So the file "a" is considered as ignored by git, but it is not displayed in output "git ls-files -i --exclude-standard".

Does the bug happen on other platforms and versions of git?

Regards, Constantine

Sitaram Chamarty· May 27, 2009, 03:37 UTC · re: Constantine Plotnikov · lore

Re: "git ls-files -i" does not shows ignored files on Windows

On 2009-05-26, Constantine Plotnikov <constantine.plotnikov@gmail.com> wrote:
Show 17 quoted lines
> I have encountered a strange problem on Windows (cygwin git 1.6.1.2
> and msys git version 1.6.2.2.1669.g7eaf8).
>
> Lets execute the following sequence of commands:
>
> git init
> echo a >.gitignore
> echo test >a
> git ls-files -i --exclude-standard
>
> The last command in the sequence gives an empty output. But "git
> status" and "git ls-files -o --exclude-standard" show only
> ".gitignore" file as untracked. So the file "a" is considered as
> ignored by git, but it is not displayed in output "git ls-files -i
> --exclude-standard".
>
> Does the bug happen on other platforms and versions of git?

here's what works, after I used your 4 commands on an empty directory. Numbers in parens added for the purpose of this email, the rest is a straight paste:

    $ git ls-files -i --exclude-standard -o (1)
    a
    $ git ls-files -o (2)
    .gitignore
    a
    $ git add a
    The following paths are ignored by one of your .gitignore
    files:
    a
    Use -f if you really want to add them.
    fatal: no files added
    $ git add -f a
    $ git ls-files -i --exclude-standard (3)
    a
    $

(1) your "a" is untracked right now, so ls-files seems to consider it part of "other" files.

(2) and indeed, using just "-o" does show the file

(3) and when you forcibly add it, then you can see it with your original command.

Yes, I agree it doesn't make too much sense. I have long had the following aliases in my gitconfig:

    ls-del  = ls-files -d
    ls-mod  = ls-files -m   # this will include deleted files also
    ls-new  = ls-files --exclude-standard -o
    ls-ign  = ls-files --exclude-standard -o -i
HTH and all that,
Sitaram

← back to recent threads