Игнорирование в Git содержимого папки, но не самой папки?
Мы обычно делаем
.gitignore:
 /tmp/

touch tmp/.keepme
git add tmp/.keepme # тут еще вроде какой-то ключ для force указать надо

Или стоит задача оставить папки _вообще_ пустыми?
Есть одно решение.
В каталог положить .gitattributes с export-ignore.

А на продакшн выкладывать не git repo целиком, а делать экспорт (через git-archive).

У меня на тестовом стенде это активно используется — по push в репозиторий hook'ом выполняется git-archive + tar x в нужном каталоге.