Вы не указываете, какие операционные системы или языки задействованы, поэтому сложно быть конкретным.
Git (и SVN, и Mercurial, и т. Д.) Отлично подходит для контроля версий, но для синхронизации систем часто требуется нечто большее, чем просто контроль версий. Если вы человек типа Python, вам может понравиться чтение Инструментов современного хакера Python: Virtualenv, Fabric and Pip . Это говорит о синхронизации не только кода, но и всей вашей среды.
Чтобы просто синхронизировать файлы на двух системах, я рекомендую rsync . Я использую это для всех видов задач, как на одной машине, так и для резервного копирования / синхронизации каталогов между машинами. У нас есть клиент в SoCal, где мы реализуем трехуровневую стратегию резервного копирования (2 на сайте, 1 вне сайта) с объемом данных более 5 терабайт, и в основе его лежит rsync и rsnapshot .
Обновление для комментария:
Неважно, на чем написан ваш сайт, вы все равно должны убедиться, что все ваших изменений дойдут до производства. Это часто многоэтапный процесс. Fabric специально разработана для того, чтобы инкапсулировать эти шаги и сводить их к одной команде. Pip и virtualenv более специфичны для Python для записи дополнительных изменений библиотеки и т. Д., Но Ruby / Rails, вероятно, имеют нечто эквивалентное. Цель состоит в том, чтобы иметь единственную команду все , необходимую для перехода от разработки к этапам, и еще одну команду для перехода от подготовки к производству.
Предостережение: не делайте , а не , для автоматической синхронизации прямо с вашего компьютера в рабочий каталог. Всегда сначала переходите в промежуточный промежуточный каталог на рабочей машине . Почти наверняка, что эти две машины не имеют 100% идентичных сред, и то, что работает на dev, может вообще не работать на вашей рабочей машине. Лучше потратить лишнюю минуту или две на тестирование в стадии подготовки, а не вызывать ошибку 500 на всей производственной площадке.