1. Мухи отдельно, котлеты отдельно
Корень репозитория не должен являться корнем сайта. У репозитория должна быть своя структура — с ветками, и т.д.
2. Автоматическое обновление
Ставится post-commit хук, который после каждого коммита будет обновлять сайт. Ничего сложного в этом нету, документация в инете есть.
3. Данные
Тут уже потребуется написать пару скриптов — для снятия дампа, и для его обновления. Также может понадобиться скрипт, которые снимает лишь частичный дамп — критичный для приложения. Возможно, наилучшим решением будет специальный софт, поддерживающий БД в актуальном состоянии.