Как игнорировать все кроме отдельных файлов и каталогов в .gitignore?
Как уже было сказано - в гит не получится добавить просто каталог. Как ни старайтесь. Если вам жизненно необходимо иметь какой-то каталог под контролем версий, то создайте в каждом нужном каталоге (даже если он и не пустой, но ни одного файла из него в git репозиторий не добавляли) файл (можно и пустой) с любым названием - обычно добавляют файлы .gitkeep . И добавьте этот файл в git.
Как вариант добавлять файлы через git add