Gitignore - разрешать только определенные расширения и файлы

Не знаю, почему это не работает, так как я сделал это! Может быть, у меня плохой день...

Я использую следующий код, чтобы игнорировать все файлы, кроме определенных имен файлов и расширения

*
!.gitattributes
!.gitignore
!readme.md
!.gitkeep
!*.php

По какой-то причине он разрешает мне только совершать .gitignore и readme.md, хотя у меня есть php файлы во вложенных папках и т.д. Есть ли что-то не так? Просто fyi, я использую "git add -A", чтобы забрать файлы для фиксации.

Спасибо заранее!

Ответ 1

Решение состоит в том, чтобы сообщить Git не игнорировать вспомогательные каталоги:

*
!.gitattributes
!.gitignore
!readme.md
!.gitkeep
!*.php
!*/

В противном случае будут приняты только файлы *.php на первом уровне каталога, и все вспомогательные каталоги будут проигнорированы.

Ответ 2

Самый сложный метод для достижения этого

создать .gitignore файл в репозитории root и добавить ниже строки в .gitignore файл

*.*
!.gitattributes
!.gitignore
!readme.md
!.gitkeep
!*.php

это будет включать весь указанный файл из каталога и подкаталога рекурсивно.

проверено на

git версия 2.12.2.windows.2