Ich versuche, eine Gitignore-Datei mit negierten Mustern (Zeilen beginnend mit!) Zu verwenden, aber es funktioniert nicht so, wie ich es erwartet habe.
Als minimales Beispiel habe ich die folgende Verzeichnisstruktur:
C:/gittest
-- .gitignore
-- aaa/
-- bbb/
-- file.txt
-- ccc/
-- otherfile.txt
und in meiner Gitignore-Datei habe ich Folgendes:
aaa/
!aaa/ccc/
Mein Verständnis (basierend auf dieser Dokumentseite ) ist, dass die Datei aaa / ccc / otherfile.txt nicht ignoriert werden sollte, aber tatsächlich ignoriert git alles unter aaa.
Verstehe ich diesen Satz falsch: "Ein optionales Präfix!, Das das Muster negiert; jede übereinstimmende Datei, die von einem vorherigen Muster ausgeschlossen wurde, wird wieder aufgenommen."
Übrigens ist dies unter Windows mit msysgit 1.7.0.2.
Wenn Sie alles ausschließen möchten
aaa
, aberaaa/ccc
alles darunter einschließen möchten , sollten Sie Folgendes verwenden:Die erste Zeile weist git an, alles darunter zu ignorieren
aaa
, die zweite sagt ihm, dass er den Ordner nicht ignorieren soll, deraaa/ccc
die dritte Zeile tatsächlich "aktiviert", die dann anweist, nicht alles darunter zu ignorierenaaa/ccc
.quelle
aaa/ccc
auf jeder Ebene aufnehmen zu können, funktionierte für mich!aaa/ccc/**
stattdessen!aaa/ccc/*
Wenn jemand immer noch keine neu ignorierten Elemente in einer
git status
laufendengit update-index
Hand sieht, kann git helfen, die Änderungen zu sehen (zumindest in Version 1.9.x von gitbash).quelle