добавление этого в ваш .gitignore должно сделать -
$ cat .gitignore
a/**/*.txt
Проверьте это, я создал ту же структуру каталогов и файлов
$ find . -name *.txt
./a/c/wjkh.txt
./a/c/wgfw.txt
./a/b/qfq.txt
./a/b/ewfw.txt
, но мой "git status" clean
$ git status
On branch master
nothing to commit, working tree clean
Убедитесь, что сначала вы зафиксировали .gitignore в репозитории, затем только он начнет игнорировать файлы.
Надеюсь, это поможет