почему я не могу добавить исключения в гитигнор?

Переношу проект который писали до меня...всё как обычно
git clone, git remote и т.д.
Суть: у меня файлы гитигнора на каждом уровне директорий и мне не хочется это менять, но в одной и директорий я пишу чтобы гит не трогал папку, а он берёт и всё равно пихает её в игнор :\ Подскажите что делать пожалуйстаодин из файлов .gitignore который не работает как надо

А вот репозиторий после пуша с этим гитигноромкартинка папки на которую воздействует гитигнор и там нет файлов которые добавлены в исключения P.S. Я не очень силён в гите( Может там можно почистить как-то память гиту и попробовать снова или ещё что


Ответы (1 шт):

Автор решения: S.H.

Да, интересный попался вопрос. Я не сразу сообразил, но путём экспериментов понял, как это сделать.

Смотрите.

Итак, Вы хотите, чтобы начиная с папки 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

Так и была решена проблема.

→ Ссылка