Как правильно вести разработку web-проектов?
Не понятен пункт 5. Зачем сливать из боевого в гит? В гите должны храниться только исходные коды, по этому там всегда самая актуальная версия. И суть тестового сервера теряется из-за пункта 3. Обычно строится так:
Локальная машина разработчика -> пуш  в git ветку test -> ci сервер сам накатывает ветку test на тестовый сервер -> разраб проверяет обновление -> мерж git ветки test с master -> ci накатывает ветку master на боевой сервер.
Параллельно по таймауту работают джобы по бэкапу боевого сервера на резервный, базы данных(mysqldump) и статики(rsync), например, раз в день с 3:00 до 4:00. Обновление базы на тестовом сервере обычно никак не автоматизируется, ибо там всегда каша из мусорных данных, которые наплодили автотесты.
А чем Вас не устраивает локальная сеть? Разворачиваете проект в локальной сети, расшариваете между машинами. Пишите код, на стейбл-релизах постите в гит. В качестве бэкапа в Вашем случае пойдет самый обычный крон, копирующий всё на второй винт. 
ЗЫ. Пользуюсь WebStorm, схема примерно такая же, всё работает. Единственное, все операции делаются через VPN-туннелирование из-за сервера на другом конце света :D