git/list[1] front-page[2] threads[3] people[4] search[5] about
 

`*' gitignores and nested ignores

From
Eli Barzilay <eli@barzilay.org>
Date
Mar 24, 2011, 10:10 UTC
Message-ID
<19851.6264.179471.935771@winooski.ccs.neu.edu>

According to the man page, a .gitignore file that is deeper has higher precedence, and a `!' line overrides lower precedence ignores. I tried that, and it works in cases like the last "vmlinux*" example.

But it doesn't work if the lower precedence directory has a "*" pattern. If the last example from the man page is changed to:

               $ cat .gitignore
               *
               $ ls arch/foo/kernel/vm*
               arch/foo/kernel/vmlinux.lds.S
               $ echo ´!/vmlinux*´ >arch/foo/kernel/.gitignore

then -- IIUC -- the second ignore should work the same, but it doesn't. This also happens if the first pattern is "/*".

Is this a bug?

BTW, my use case is to track random stuff in a directory that has lots of junk. I wanted to do this by having a toplevel "/*" ignore and add files explicitly when I want to. But there are some directories that should be tracked, and I was trying to achieve this effect by adding a "!/*" pattern in them. Is there a more convenient (or saner) way of doing this?

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!
Next: Johannes Sixt
Message 1 of 3 in “`*' gitignores and nested ignores”
  1. Eli BarzilayMar 24, 2011
  2. Johannes SixtMar 25, 2011
  3. Eli BarzilayMar 25, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.