gitignore Verzeichnisausnahme funktioniert nicht

8

Ich habe folgende Ordnerstruktur:

%Vor%

Ich möchte alles im Verzeichnis media speichern, außer für catalog/category und private

Mein Gitignore, das ich versuche, ist:

%Vor%

Aber es funktioniert nicht. Alle neuen Dateien, die den Verzeichnissen category oder private hinzugefügt wurden, können nicht hinzugefügt werden.

Ich könnte einfach Kraft hinzufügen, aber ich würde das gerne durch den Gitignore tun, wenn möglich

    
Marty Wallace 21.05.2013, 20:28
quelle

2 Antworten

7

Es ist normalerweise am einfachsten, nur eine .gitignore auf die Ebene zu setzen, auf die es ankommt. (Dies hilft auch, wenn Sie ein Repository teilen oder Verzeichnisse verschieben). In diesem Fall müssen Sie alles außer catalog und private im Ordner public/media ignorieren, also in public/media/.gitignore put:

%Vor%

und in public/media/catalog/.gitignore put:

%Vor%

Es ist wichtig (und der Grund, dass Ihre Regeln nicht funktionieren), das public/media/catalog -Verzeichnis nicht zu ignorieren, da sonst alles darin ignoriert wird, auch wenn Sie einen bestimmten Teil seines Inhalts nicht ignorieren wollen .

Natürlich können Sie dies auf der Ebene public/media zu einer einzigen Ignorierung kombinieren, wenn Sie möchten:

%Vor%     
Charles Bailey 21.05.2013, 20:52
quelle
2

Lösung mit einem .gitignore auf Root-Ebene

Sie haben versucht, eine .gitignore -Datei auf der Root-Ebene des Repositorys zu verwenden. Wie du, zentralisiere ich normalerweise auch alle Ignoranten, um die Dinge sauber zu halten. In diesem Fall ist es jedoch schwierig, weil "es nicht möglich ist, eine Datei wieder aufzunehmen, wenn ein übergeordnetes Verzeichnis dieser Datei ausgeschlossen ist" [ Quelle ].

Meine hässliche Lösung für diese Einschränkung, die ich auch in meinen diesbezüglichen Antworten hier und hier : Fügen Sie alle übergeordneten Verzeichnisse erneut in den Pfad ein, bevor Sie die gewünschte Datei erneut einfügen, während Sie andere Dateien in diesen übergeordneten Verzeichnissen beibehalten, indem Sie sie erneut ausschließen.

Damit wären Ihre .gitignore Muster:

%Vor%     
tanius 25.08.2014 01:05
quelle

Tags und Links