Если вы попробуете таким образом, это не удастся, потому что вы в конечном итоге внесете в черный список каталоги в своей структуре.
Чтобы решить эту проблему, вы хотите занести в черный список все, что не является каталогом и не является одним из типов файлов, которые вы хотите зафиксировать, при этом не помещая в черный список каталоги. .
.gitignoreФайл , который будет делать это:
# First, ignore everything
*
# Now, whitelist anything that's a directory
!*/
# And all the file types you're interested in.
!*.one
!*.two
!*.etc
Испытано это в структуре трехуровневой белого списка для .txtфайлов в присутствии *.one, *.twoи *.threeфайлы , используя .gitignoreрасположенные в корневом каталоге репозитория - работает для меня. Вам не нужно будет добавлять.gitignore файлы во все каталоги в вашей структуре.
Информация, которую я использовал для выяснения ответа, пришла, помимо прочего, с этого (stackoverflow.com).