Commit 59856de von Karsten Blees (kblees) für Git 1.9 / 2.0 (Q1 2014) verdeutlicht diesen Fall:
gitignore.txt
: Klären Sie den rekursiven Charakter ausgeschlossener Verzeichnisse
Ein optionales Präfix " !
", das 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. ( *
)
( *
: Sofern bestimmte Bedingungen in Git 2.8+ nicht erfüllt sind, siehe unten)
Git listet aus Leistungsgründen keine ausgeschlossenen Verzeichnisse auf, sodass Muster für enthaltene Dateien keine Auswirkungen haben, unabhängig davon, wo sie definiert sind.
Setzen Sie einen Backslash (" \
") vor das erste " !
" für Muster, die mit einem Literal " !
" beginnen, z. B. " \!important!.txt
".
Beispiel zum Ausschließen von allem außer einem bestimmten Verzeichnis foo/bar
(beachten Sie /*
, dass der Platzhalter ohne Schrägstrich auch alles darin ausschließt foo/bar
):
--------------------------------------------------------------
$ cat .gitignore
# exclude everything except directory foo/bar
/*
!/foo
/foo/*
!/foo/bar
--------------------------------------------------------------
In Ihrem Fall:
application/*
!application/**/
application/language/*
!application/language/**/
!application/language/gr/**
Sie müssen zuerst Ordner auf die weiße Liste setzen, bevor Sie Dateien in einem bestimmten Ordner auf die weiße Liste setzen können.
Update Februar / März 2016:
Beachten Sie, dass es mit git 2.9.x / 2.10 (Mitte 2016?) Möglicherweise möglich ist, eine Datei erneut einzuschließen, wenn ein übergeordnetes Verzeichnis dieser Datei ausgeschlossen wird, wenn der wieder aufgenommene Pfad keinen Platzhalter enthält .
Nguyễn Thái Ngọc Duy ( pclouds
) versucht, diese Funktion hinzuzufügen:
Mit Git 2.9+ hätte dies tatsächlich funktionieren können, wurde aber letztendlich rückgängig gemacht:
application/
!application/language/gr/
.gitignore
Dokumentation zum " Musterformat" gerade klarer (Dezember 2013). Siehe meine Antwort unten