Настраиваем хостинг для загрузки версий веб-приложения через git

Все никак руки не доходили выложить 'напоминалку' по рабоче с репозиториями на хостинге, и вот случилось.

На сервере создаем папку в которой будет хранится сам git репозиторий, мы его отделяем от рабочей директории сайта, чтобы файлы в директории .git никаким образом небыли доступный снаружи:

$ mkdir website.git && cd website.git
$ git init --bare
Initialized empty Git repository in /home/ams/website.git/

После чего необходимо настроить post-receive hook, для того чтобы после Вашего пуша (push) на сервер, git обновил рабочую директорию сайта.

$ mkdir /var/www/www.example.org
$ cat > hooks/post-receive
#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f
$ chmod +x hooks/post-receive

Где, /var/www/www.example.org - путь к папке сайта на Вашем хостинге.

После этого на своей локальной машине, настраиваем существующий репозиторий на работу с новым remote:

$ git remote add web ssh://server.example.org/home/ams/website.git
$ git push web +master:refs/heads/master

Где, ssh://server.example.org/home/ams/website.git - путь к репозиторию на вашем хостинге, обратите внимание что доступ по ssh должен быть открыт.

Ну и загружаем все обновления на сервер:

$ git push web

В случае, если Вам понадобиться на хостинге переключить ветку с master, на какую-то другую используйте команду:

$git --work-tree=/var/www/www.example.org checkout branch_name

Где, branchn_name - имя Вашей ветки.

Источник

git
comments powered by Disqus