スペースを含むgitignoreパターンを無効にする方法は?

スペースを含むgitignoreパターンを無効にする方法は?

my.gitignoreまず、すべてを除いて、多くのノイズを避けるために含めたいすべてを無効にしますgit status

*
!awesome/
!calibre/
[…]

ただし、Visual Studio Codeをインストールした後、「Code - OSS」ディレクトリの一致を無効にすることはできないようです。私は次の行を試しました:

!Code - OSS/
!Code\ -\ OSS/
!'Code - OSS/'
!"Code - OSS/"
!Code*

私の.gitignoreの下部にあるこれらのすべての行にもかかわらず、git statusまだそのディレクトリを含めることができるものとしてリストされていません。


git check-ignore --verbose Code\ -\ OSS各行の出力も奇妙です。

.config/.gitignore:22:!Code - OSS/  Code - OSS
.config/.gitignore:22:!Code\ -\ OSS/    Code - OSS
.config/.gitignore:1:*  Code - OSS
.config/.gitignore:1:*  Code - OSS
.config/.gitignore:22:!Code*    Code - OSS

ベストアンサー1

これはバグのようです。テストケース:

$ 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
> *
> !foo bar
> !foo\ bar
> !"foo bar"
> "!foo bar"
> !foo bar/
> !foo\ bar/
> !"foo bar/"
> "!foo bar/"
> EOF
$ git status --short 
[no output]

回避策/テスト防止ケース:

$ cat > .gitignore << EOF
> */
> !foo\ bar/
> EOF
$ git status --short 
?? .gitignore
?? foo bar/

おすすめ記事