Поскольку ваш вопрос по своей сути включает в себя, как развернуть приложение Rails в версии контролируемой среде, I удивлен, никто не упомянул Capistrano или Vlad the Deployer. Эти популярные инструменты для развертывания могут служить примером того, как ваш репозиторий связан с вашим живым приложением.
Вот как это делает Капистрано. Когда вы укажете его на развертывание, он создаст новый, временный каталог на вашем сервере с последней версией из вашего репозитория. Этот timestamped каталог символически привязан к фактическому каталогу, который ваш веб-сервер ищет, чтобы найти ваше приложение. Как только Capistrano закончит извлечение всех файлов из git, он переключит символическую ссылку, чтобы указать на новый каталог. Если вы выдаете команду отката, она просто меняет символическую ссылку на следующий старый, временный каталог (обычно вы держите пару старых, лежащих вокруг).
Наибольшее преимущество этой модели заключается в том, что изменение символической ссылки мгновенно обновляет/понижает каждый файл в вашем приложении, поэтому нет проблем с задержкой или отсутствием зависимостей.
Вы можете, конечно, реализовать эту модель (или аналогичную) самостоятельно или просто использовать любой из этих инструментов, чтобы сделать это за вас.
Я бы тоже подумал о «Heroku.com» за удивительную любовь Git/Ruby. –