W moim .gitignore mam linię:
/storage/*.key
Ale nie chcę ignorować tej konkretnej ścieżki i całej jej zawartości:
/storage/app/public/*
Teraz wewnątrz tej ścieżki znajduje się inny plik .gitinore i ma on:
*
!.gitignore
I na tej samej ścieżce jest inny .gitignore z:
*
!public/
!.gitignore
Pomyślałem, że będzie to dodanie ścieżki, ale nie działa.
Co to jest? Jak mogę zrobić to, co chcę (dodać ścieżkę magazynu / app / public *)?
Odpowiedzi:
0 dla odpowiedzi № 1Po prostu sprawdź, które dokładnie .gitignore i która reguła ignoruje publiczne:
cd /path/to/my/repo
# from the root folder of the repo:
git check-ignore -v /storage/app/public/aFileWithinPublic
Musisz przetestować plik, ponieważ Git nie śledzi folderu.
Zasada jest prosta:
Ponowne dołączenie pliku nie jest możliwe, jeśli wykluczony jest katalog nadrzędny tego pliku.
Jeśli więc folder publiczny jest ignorowany (przez regułę „*” w rodzicu .gitignore), jeśli którykolwiek z folderów nadrzędnych publicznych jest ignorowany, żadna ilość wykluczenia nie będzie w stanie uczynić zawartości publicznej nie ignorowaną.
Więc to jest dobre (od .gitignore
w storage/app/
, rodzic public/
teczka):
*
!public/
Ale jeśli storage/app/
lub storage/
są ignorowane, to wykluczenie również zostanie zignorowane.
Dlatego git check-ignore -v /storage/app/public/aFileWithinPublic
jest ważne: wyjaśni, co powoduje zawartość folderu nadal być zignorowanym.