Chcę zignorować wszystkie reguły .gitignore w podkatalogu, z wyjątkiem reguł .gitignore w katalogu głównym.
na przykład) Już mam .gitignore
plik w strukturze katalogów /a
.
I też mam .gitignore
plik w /a/b
. Założyć /a
mieć a.txt
b.txt
akta.
/a/b
ma .config
plik. .gitignore
definiuje .config
w /a/b
.
.config
plik zostanie zignorowany przez .gitignore
w /a/b
.
Ale naprawdę chcę śledzić .config
plik, ignorując reguły .gitignore
w podkatalogu.
Czy to możliwe?
Z góry dziękuję
Odpowiedzi:
85 dla odpowiedzi nr 1Twoje pytanie nie jest zbyt jasne, ale jeśli istnieją podkatalogi, w których chcesz mieć inne reguły gitignore, możesz po prostu utworzyć nowy .gitignore w tym katalogu.
Powiedz, że masz:
projekt / .gitignore project / stuff / .gitignore
.Gitignore w rzeczy / zastąpi .gitignore w katalogu głównym.
git help gitignore
lub man gitignore
ma nieco więcej informacji o tym, co jest możliwe.
26 dla odpowiedzi nr 2
Powiedzmy, że chcesz dołączyć node_modules
w twoim repozytorium, ale niektóre moduły w dolnej linii mają .gitignore
własny. Możesz negować reguły, dodając następujące elementy do swojego katalogu głównego .gitignore
plik:
# Make sure to include everything in node_modules.
!node_modules/**
6 dla odpowiedzi nr 3
O ile wiem, nie ma na to sposobu. Ponieważ lokalny plik .gitignore nadpisze root ginignore Moje obejście polega na dodawaniu ręcznym.
git add --force [ your file and folder]
5 dla odpowiedzi № 4
Kluczem do rozwiązania tego problemu jest wykluczenie katalogu nadrzędnego. Z $ man gitignore
:
Ponowne dołączenie pliku nie jest możliwe, jeślikatalog nadrzędny tego pliku jest wykluczony. Git nie wyświetla wykluczonych katalogów ze względu na wydajność, więc wszelkie wzorce w zawartych plikach nie mają wpływu, bez względu na to, gdzie są zdefiniowane.
Oto jak udało mi się go uruchomić. Dany:
/a/...
/b/foo
/c/...
/.gitignore
:
/*
!/b
Następnie /b/foo
pojawi się jako dołączone pliki, podczas gdy wszystko w /a
i /c
zostaną wykluczone. Kompromis polega na tym, że musisz dodać negację dla wszystkich rodziców dowolnego katalogu, w którym chcesz dołączyć pliki.