Cannot negate `*` ignore pattern for directory with space in the name
- From
- Victor Engmark <victorengmark@catalyst.net.nz>
- Date
- Sep 18, 2018, 04:03 UTC
- Message-ID
- <955f404f-83ed-758e-017b-d6b4a1f69ef7@catalyst.net.nz>
To reproduce (from <https://unix.stackexchange.com/q/469708/3645>):
$ cd "$(mktemp --directory)" $ mkdir foo\ bar $ touch foo\ bar/test $ git init Initialized empty Git repository in /tmp/tmp.iGmBR6y2xR/.git/ $ git status --short ?? foo bar/ $ cat > .gitignore << EOF
Show 12 quoted lines
> * > !foo bar > !foo\ bar > !"foo bar" > "!foo bar" > !foo* > !foo bar/ > !foo\ bar/ > !"foo bar/" > "!foo bar/" > !foo*/ > EOF
$ git status --short [no output]
The pattern *can* be negated if it only matches directories:
$ cat > .gitignore << EOF
> */ > !foo\ bar/ > EOF
$ git status --short ?? .gitignore ?? foo bar/
I encountered this problem because Visual Studio Code creates a configuration directory called "Code - OSS", and I exclude everything in ~/.config by default to avoid noise in `git status`.
$ git --version git version 2.19.0
-- Kind regards Victor Engmark