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! -- 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