Im moment gibt es Unterschiede zwischen www
, www/
und www/*
.
Grundsätzlich finden Sie in der Dokumentation und in meinen eigenen Tests www
eine Übereinstimmung mit einer Datei oder einem Verzeichnis, die www/
nur mit einem Verzeichnis www/*
übereinstimmt , während Verzeichnisse und Dateien darin übereinstimmen www
.
Ich werde nur auf die Unterschiede zwischen www/
und www/*
hier eingehen, da die Unterschiede zwischen www
und www/
offensichtlich sind.
Denn www/
git ignoriert das Verzeichnis www
selbst, was bedeutet, dass git nicht einmal hineinschaut. Aber für www/*
git überprüft git alle Dateien / Ordner im Inneren www
und ignoriert sie alle mit dem Muster *
. Es scheint zu den gleichen Ergebnissen zu führen, da git einen leeren Ordner nicht verfolgt, www
wenn alle untergeordneten Dateien / Ordner ignoriert werden. Und in der Tat werden die Ergebnisse für den Fall von OP mit www/
oder für sich www/*
allein keinen Unterschied machen . Aber es macht Unterschiede, wenn es mit anderen Regeln kombiniert wird.
Was ist zum Beispiel, wenn wir www/1.txt
alle anderen nur einschließen, aber ignorieren wollen www
?
Folgendes .gitignore
wird nicht funktionieren.
www/
!www/1.txt
Während das Folgende .gitignore
funktioniert, warum?
www/*
!www/1.txt
Bei ersteren ignoriert git das Verzeichnis einfach www
und schaut nicht einmal hinein, um es www/1.txt
erneut einzuschließen. Die erste Regel schließt das übergeordnete Verzeichnis aus, www
jedoch nicht www/1.txt
, und www/1.txt
kann daher nicht " wieder aufgenommen " werden.
Bei letzterem ignoriert git jedoch zuerst alle Dateien / Ordner unter www
und schließt dann wieder eine davon ein www/1.txt
.
In diesem Beispiel können die folgenden Zeilen in der Dokumentation hilfreich sein:
Ein optionales Präfix "!" was das Muster negiert; Alle übereinstimmenden Dateien, die von einem vorherigen Muster ausgeschlossen wurden, werden wieder aufgenommen. Es ist nicht möglich, eine Datei erneut einzuschließen, wenn ein übergeordnetes Verzeichnis dieser Datei ausgeschlossen ist.
bin
undbin/
besteht darin, dass erstere Dateien oder Ordner ignorieren, letztere nur Ordner. Ich kenne den Unterschied nicht mitbin/*