Проще принудительно добавить этот файл в отслеживаемые, чтобы не заморачиваться с игнорированием
git add -f “admin/controller/module/test.php”
Иначе придётся создавать сложную цепочку игноров и инверсий
admin/*
!admin/controller
admin/controller/*
!admin/controller/module
admin/controller/module/*
!admin/controller/module/test.php
Для отладки можно использовать команду
git check-ignore **/* # показать все проигнорированные файлы
admin/controller/level2.txt
admin/controller/module/level3.txt
admin/controller/module/test2.php
admin/level1.txt
git check-ignore -v **/* # показать какие правила сработали
.gitignore:2:!admin/controller admin/controller
.gitignore:3:admin/controller/* admin/controller/level2.txt
.gitignore:4:!admin/controller/module admin/controller/module
.gitignore:5:admin/controller/module/* admin/controller/module/level3.txt
.gitignore:6:!admin/controller/module/test.php admin/controller/module/test.php
.gitignore:5:admin/controller/module/* admin/controller/module/test2.php
.gitignore:1:admin/* admin/level1.txt