Le mar. 22 janv. 2019 à 15:09, Konstantin Khomoutov <kos...@bswap.ru
<mailto:kos...@bswap.ru>> a écrit :
On Tue, Jan 22, 2019 at 10:55:50AM -0800, cl.robitai...@gmail.com
<mailto:cl.robitai...@gmail.com> wrote:
> Is there a way to list ALL of the ignore files that a given git
uses?
Yes. This list is documented in the gitignore(5) manual page.
Run `git help ignore` to read it.
> There are tons of files and locations that git uses and Googling
only
> reports a partial list...... in my case, I had, but forgotten,
both
> ~/.gitconfig AND ~/.config/git/ignore. The later was never
mentioned
> anywhere on Google but was the culprit of my issue.
Your general problem is a wrong approach: instead of googling, you
should better have spent your time contemplating the first two
paragraphs of the manual page mentioned above.
> Ok, I know, git check-ignore be used. But not in my case!!! Here
is an
> example
>
> git add lib
> The following paths are ignored by one of your .gitignore files:
> lib
> Use -f if you really want to add them.
>
>
> git check-ignore lib
> NO OUTPUT
>
>
> git check-ignore -v -n lib
> :: lib
>
>
> The 2 git check-ignore clearly say that lib should not be
ignored (the NO
> OUTPUT is me writing) while git add ignores it. So, somehow, git
> check-ignore is misleading. Some files under lib are already
under control;
> I probably added lib/ in the ignore long time ago (so that I
forgot) and
> MAY be the reason why git check-ignore fails reporting the same
behaviour
> as git add. Just a guess though...
No, you just have a mental model about how `git check-ignore` works
different from how it's actually implemented.
Again, reading the manual page of that command should have helped.
In the intro part of that manual page, we read:
| By default, tracked files are not shown at all since they are not
| subject to exclude rules; but see ‘--no-index’.
So, the reason Git says you have 'lib' ignored when you attempt to
`git add` it is because you have this directory ignored _and_
have it
included in the commit HEAD points at (what you currently have
checked
out).
To demonstrate:
~$ cd ~/tmp
tmp$ mkdir zzz
tmp$ cd zzz
zzz$ git init .
Initialized empty Git repository in /home/kostix/tmp/zzz/.git/
zzz$ touch aaa
zzz$ git add aaa
zzz$ git commit aaa
[master (root-commit) f98e522] boo
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 aaa
zzz$ mkdir lib
zzz$ touch lib/bbb
zzz$ git add lib/bbb
zzz$ git commit
[master 2a63dbe] trrr
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 lib/bbb
zzz$ echo 'lib/' >.gitignore
zzz$ git add lib
The following paths are ignored by one of your .gitignore files:
lib
Use -f if you really want to add them.
zzz$ git check-ignore -v lib
zzz$ git check-ignore -v -n lib
:: lib
So, that's precisely what you see.
Now let's add "--no-index" as suggested by the manual page - to
ignore
"lib" even if we have it tracked:
zzz$ git check-ignore -v --no-index lib
.gitignore:1:lib/ lib
It works.
TL;DR
1) You have your "lib" directory tracked by Git.
This means the currently checked out commit have at least a
single
file from that directory (or deeper) included.
2) You have your "lib" directory ignored.
The crux here is that the "ignoring" mechanics have nothing to
with what
files Git actually tracks (as part of commits). The behaviour of the
`git check-ignore` may arguably seem weird but it's documented
nonetheless.
Hope this helps.
-- You received this message because you are subscribed to
the Google
Groups "Git for human beings" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to git-users+unsubscr...@googlegroups.com
<mailto:git-users%2bunsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google
Groups "Git for human beings" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to git-users+unsubscr...@googlegroups.com
<mailto:git-users+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.