2013-01-12 7 views
6

próbowałem tego pliku .gitignore:Git: nie ignorować -directory- z kropką w nim

* 
!mydirectory.ext 
!.gitignore 

Ale to nie działa, wszystko z wyjątkiem gitignore jest ignorowany.

próbował również:

!\mydirectory\.ext 

Katalog potrzebuje rozszerzenie ponieważ jego wtyczka do aplikacji.

Jakiekolwiek obejścia?

+0

Naprawdę chcesz zignorować _ wszystko z wyjątkiem tego katalogu? – fge

Odpowiedz

2

Ci rodzaj białej liście nie są łatwe możliwe git.

Po zignorowaniu gita katalogu nie będzie wyglądać wewnątrz niego i dlatego nie będzie sprawdzać wyjątków w tym katalogu.

Jedynym sposobem obejścia tego problemu są długie kaskady włączania/wyłączania, które są naprawdę brzydkie.

Najlepszym sposobem jest ponowne przemyślenie swojego problemu i próba rozwiązania go bez takich ogólnych wyjątków, na przykład poprzez wyraźne ignorowanie wszystkiego, czego na pewno nie chcesz.

7

ref

* 
!/mydirectory.ext/ 
!/mydirectory.ext/* 
!/mydirectory/.ext/ 
!/mydirectory/.ext/* 
!.gitignore 

lub

* 
# ignore all 
!/.*/ 
# but not directories which names starting with a dot 
!/.*/* 
# and all its contents 
/.*/*/ 
# but ignore other directories (which names not starting with a dot) 
# which results also not tracking its files underneath 
!/.*/.*/ 
# but not to subdirectories (which names starts with a dot) 
!/.*/.*/* 
# and its contents 


!/*.*/ 
# don't ignore directories which names has a dot in it 
!/*.*/* 
# and its contents 
# extend it like with /.*/ 
!.gitignore 

i tak dalej