explicar correspondência de padrões gitignore
Eu tenho a seguinte árvore de diretórios:
> #pwd is the repo
> tree -a
.
├── .git
│ |.....
├── .gitignore
├── README.md
├── f1.html
├── f2.html ... and some more html
├── images
│ └── river.jpg
>
Eu também tenho o seguinte na minha.gitignore
:
> cat .gitignore
*
!*.html
!images/*.*
>
Gostaria que todos os arquivos no diretório images fossem incluídos no repositório. Mas isso não está acontecendo. Eu consegui funcionar usando o seguinte no gitignore:
*
!*.html
!images*
!*.jp*g
O que esta acontecendo aqui? Existe uma maneira infalível de testar o gitignore. Eu verifiquei odocumentação. Aqui está o ponto que ele não entende (isso está sobformato padrão cabeçalho):
Caso contrário, o Git tratará o padrão como um shell glob adequado para consumo pelo fnmatch (3) com o sinalizador FNM_PATHNAME: os curingas no padrão não corresponderão a / no nome do caminho. Por exemplo, "Documentação / *. Html" corresponde a "Documentação / git.html", mas não "Documentação / ppc / ppc.html" ou "tools / perf / Documentation / perf.html".