Настройка GIT
Ситуация такая: у меня есть репозиторий сайта на удаленном сервере. Мне надо, чтобы когда я заливаю изменения на сервер (push), обновлялась файлы сайта, т.е. сразу на нем показывались внесенные изменения.
Ситуация такая: у меня есть репозиторий сайта на удаленном сервере. Мне надо, чтобы когда я заливаю изменения на сервер (push), обновлялась файлы сайта, т.е. сразу на нем показывались внесенные изменения.
Вы путаете контроль версий и деплой в одно блюдо.
Изучите capistrano.
Есть deploy hook'и, но это не то, чего вы хотите и к чему стоит привыкать. Это не ftp.
У меня подобное реализовано следующим образом.
Есть сервер с репозиториями, работает через gitolite. На нем же расположенны репозитории с dev версиями сайтов. По простенькому хуку post-receive на баше, выполняющему следующую команду:
/var/.../hook_git.php "$GL_REPO_BASE" "$GL_REPO"
запускается скриптик, который определяет нужный репозиторий и каталог с дев версией и жестко подтягивает изменения:
git fetch --all
git reset --hard origin/master
Итого имеем 4 репозитория на каждый проект:
И все работает по феншую. Т.е. в non-bare репозиторий мы не пушим, а подтягиваем изменения из основного репозитория. Всегда имеем актуальную дев версию сайта.
Можно это все немного проапгрейдить. Например, комиты в dev ветку подтягивать на dev версию, master - на продакшн. Но я придерживаюсь мнения, что последнее лучше делать руками (по крайней мере для рядовых проектов, где не нужны адские системы деплоя).