Jak już wspomniano w "Including specific file extension in gitignore", główną zasadą jest, aby pamiętać:
It is not possible to re-include a file if a parent directory of that file is excluded. (*
)
(*
: o ile spełnione są określone warunki w git 2.?+, patrz niżej)
Dlatego każda reguła, która ignoruje foldery (np. *
lub */
), uniemożliwiłaby wykluczenie jakichkolwiek pod-plików.
Dlatego właściwym podejściem jest wykluczenie wszystko oprócz:
- foldery
- (następnie) pliki, które chcesz wykluczyć.
Jeśli nie wyklucza foldery pierwszy, pliki nadal będzie ignorowane (bo z reguły wspominam powyżej)
więc dodać w swoim .gitignore
:
/static/**/**
!/static/**/
!.gitignore
!.htaccess
To jest testowany z Git 2.4.1 i działa nawet w systemie Windows.
Należy zauważyć, że z git 2.9.x/2.10 (w połowie 2016?), To może być możliwe, aby ponownie włączyć plik czy katalog nadrzędny tego pliku jest wykluczone if there is no wildcard in the path re-included.
Nguyễn Thái Ngọc Duy (pclouds
) próbuje dodać tę funkcję:
Jednakże, ponieważ jednym z warunków było „Część katalogu w re obejmują zasady muszą być dosłowne (czyli żadnych symboli wieloznacznych)”, nie można korzystać z tej funkcji tutaj tak.
Myślę, że należy najpierw dodać do białej listy katalogi. Czy '!/Static/** /' działa jako druga linia w twoim pierwszym podejściu? –