У меня так, проект на локальном сервере (git), далее на vps дев версия(git) и продакшн,
при заливки правок, отправляю всё на битбакет с локального сервера, далее через phing сливаю правки с битбакета в дев версию, тестирую если всё ок, то через ссш посредством rsync синхронизирую дев версию и продакшн. В итоге для синхронизации локальной версии с продакшн всего 2 команды, не учитывая команды гита.
На всех трех версиях, также разное окружение, но настроено всё таким образом что конфиги цепляются в зависимости от того где расположен проект, если локальная версия то одни, на дев и продакшн соответственно другие