erklären Gitignore Pattern Matching

Ich habe den folgenden Verzeichnisbaum:

> #pwd is the repo   
> tree -a
.
├── .git
│   |.....
├── .gitignore
├── README.md
├── f1.html
├── f2.html ... and some more html
├── images
│   └── river.jpg
>

Ich habe auch die folgenden in meinem.gitignore:

> cat .gitignore
*
!*.html
!images/*.*
>

Ich möchte, dass alle Dateien im Bilderverzeichnis in das Repo aufgenommen werden. Das passiert aber nicht. Ich habe es mit den folgenden in Gitignore arbeiten:

*
!*.html
!images*
!*.jp*g

Was passiert hier? Gibt es eine narrensichere Möglichkeit, Gitignore zu testen. Ich habe das @ überprüDokumentatio. Hier ist der Punkt, den es nicht versteht (dies ist unterpattern format Überschrift):

Andernfalls behandelt Git das Pattern als Shell-Glob, der für die Verwendung durch fnmatch (3) mit dem Flag FNM_PATHNAME geeignet ist: Platzhalter im Pattern stimmen nicht mit einem / im Pfadnamen überein. Beispielsweise stimmt "Documentation / *. Html" mit "Documentation / git.html" überein, nicht jedoch mit "Documentation / ppc / ppc.html" oder "tools / perf / Documentation / perf.html".

Antworten auf die Frage(2)

Ihre Antwort auf die Frage