почему я не могу добавить исключения в гитигнор?
Переношу проект который писали до меня...всё как обычно
git clone, git remote и т.д.
Суть: у меня файлы гитигнора на каждом уровне директорий и мне не хочется это менять, но в одной и директорий я пишу чтобы гит не трогал папку, а он берёт и всё равно пихает её в игнор :\ Подскажите что делать пожалуйста
А вот репозиторий после пуша с этим гитигнором
P.S. Я не очень силён в гите( Может там можно почистить как-то память гиту и попробовать снова или ещё что
Ответы (1 шт):
Да, интересный попался вопрос. Я не сразу сообразил, но путём экспериментов понял, как это сделать.
Смотрите.
Итак, Вы хотите, чтобы начиная с папки storage/app/public все папки, кроме storage/app/public/files игнорировались. А папка storage/app/public/files ложилась в git вместе со всем содержимым.
при этом "Восклицательный знак(!) в начале строки означает инвертирование правила, необходим для указания исключений из правил игнорирования".
Для этого Вы пишете такой .gitignore (лежащий в storage/app/public):
*
!files/
!.gitignore
И это не работает.
Как я понял путём экспериментов, для .gitignore, лежащего в storage/app/public этот путь (storage/app/public) является "корневым".
И правильный .gitignore, который будет работать так,к ак Вы хотите, должен выглядеть так:
/*
!/files/
!.gitignore
Видите, в первых двух строчках добавилось по косой черте вначале имени.
Я проверил - ( https://github.com/junecat/TestGitForSOquestion/ ) - работает!
Дополнение от автора вопроса
Проблема была решена. Не знаю почему так, но я добавил в каждую папку (которая не должна была улетать в игнор) файл .gitignore и прописал:
!файлИлиПапкаКотораяНеИдётВИгнор
!.gitignore
И в моём случае в родительской папке на всякий случай оставил:
*
!files/
!.gitignore
Так и была решена проблема.