Próbuję użyć pliku .gitignore z zanegowanymi wzorcami (linie zaczynające się od!), Ale nie działa tak, jak się spodziewam.
Jako minimalny przykład mam następującą strukturę katalogów:
C:/gittest
-- .gitignore
-- aaa/
-- bbb/
-- file.txt
-- ccc/
-- otherfile.txt
aw moim pliku gitignore mam to:
aaa/
!aaa/ccc/
Rozumiem (na podstawie tej strony dokumentacji ), że plik aaa / ccc / otherfile.txt nie powinien być ignorowany, ale w rzeczywistości git ignoruje wszystko, co znajduje się pod aaa.
Czy źle rozumiem to zdanie: „Opcjonalny przedrostek! Który neguje wzorzec; każdy pasujący plik wykluczony przez poprzedni wzorzec zostanie ponownie uwzględniony.”?
BTW, to jest w systemie Windows z msysgit 1.7.0.2.
Jeśli chcesz wykluczyć wszystko w
aaa
, ale uwzględniaćaaa/ccc
i wszystko poniżej, użyj:Pierwsza linia mówi gitowi, aby ignorował wszystko poniżej
aaa
, druga mówi mu, aby nie ignorował folderu,aaa/ccc
który faktycznie „włącza” trzecią linię, która następnie mówi mu, aby nie ignorował wszystkiego poniżejaaa/ccc
.źródło
aaa/ccc
na dowolnym poziomie, to, co zadziałało, to!aaa/ccc/**
zamiast!aaa/ccc/*
Jeśli ktoś wciąż nie widząc nowo un-ignorowane elementy w
git status
uruchomionagit update-index
przed ręka może pomóc git aby zobaczyć zmiany (przynajmniej w wersji 1.9.x do gitbash).źródło