Не знаю чем вы пользуетесь чтобы залить измененные файлы на сайт, а я раньше делал все вручную. Нудная и дурацкая работа кончено, и в какой-то момент лень, как двигатель прогресса взяла свое. Благо к этому времени я начал разбираться с рельсами, а вместе с ними и с другими прелестями адекватной разработки веб-приложений, в том числе и с VCS. В какой-то момент меня осенило — ведь в Git (Сайт проекта, Википедия) уже есть все для отслеживания изменений, почему бы не начать использовать его для заливки. Все что нужно — SSH и промежуточный репозиторий на том же сервере, недоступный веб-серверу. Собственно, как:
В дальнейшем при обновлении локально нужно сделать коммит и git push, удаленно — git pull
Удаленно
Создаем удаленный репозиторий:
mkdir -p git/project.git
cd git/project.git/
git init --bare
Локально
Создаем локальный репозиторий:
cd /home/me/project
git init
Вписываем файлы которые не нужно синхронизировать, для рельс на макоси я вписываю в .gitignore следующее:
.DS_Store
log/*.log
tmp/**/*
config/database.yml
Теперь можно сделать первый коммит и отправить все куда следует:
git commit -a -m 'Initial commmit'
git remote add production ssh://me@my.server.ru/home/me/git/project.git
git push production master
Удаленно
Остается склонировать репозиторий
git clone /home/me/git/project.git
В дальнейшем при обновлении локально нужно сделать коммит и git push, удаленно — git pull