Como negar um padrão gitignore contendo espaços?

1

Meu .gitignore começa excluindo tudo e, em seguida, negando tudo que Quero incluir, para evitar muito barulho em git status :

*
!awesome/
!calibre/
[…]

No entanto, depois de instalar o Visual Studio Code, não consigo negar a correspondência para o diretório "Code - OSS". Eu tentei as seguintes linhas:

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

Com todas essas linhas na parte inferior do meu .gitignore git status ainda não lista esse diretório como disponível para inclusão.

A saída de git check-ignore --verbose Code\ -\ OSS com cada uma dessas linhas também é estranha:

.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
    
por l0b0 18.09.2018 / 05:18

1 resposta

0

Parece que isso é um bug. Caso de teste:

$ 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]

Solução alternativa / contra-teste:

$ cat > .gitignore << EOF
> */
> !foo\ bar/
> EOF
$ git status --short 
?? .gitignore
?? foo bar/
    
por 18.09.2018 / 05:48

Tags