Гит — это ок. В 2016-м году файлики через FTP никто не таскает. Почти все знакомы с базовыми командами, но не каждый умеет настраивать git на хостинге (о облачных выделенных серверах я вообще молчу). Поэтому я решил выложить для всех свою шпаргалку о разворачивании гита на хостинге. В моем случае — это Бегет, но у других хостеров примерно так же.
Шаг 1
Создаем FTP-юзера с доступом к корневой директории сайта (на уровень ниже от public_html) и включаем для него SSH. Сразу же запишем куда-нибудь доступы. Мы храним их в таком формате:
Логин FTP-юзера: username
Пароль: ************
Репозиторий: username@server-ip:project.git
Шаг 2
В корневой сайте создаем папку. ssh, а в ней файл authorized_keys. Туда запишем ssh-ключи людей, которые будут работать с этим проектом. Можно это сделать через ФТП, но мне привычней через SSH.
ssh username@server-ip
mkdir .ssh
cd .ssh
touch authorized_keys
nano authorized_keys
О том как сгенерировать SSH-ключ есть отличная инструкция на
Гитхабе.
Шаг 3
В папке public_html инициализируем новый репозиторий и добавим файлы под контроль версий.
cd ~/public_html
git init
git add -A
git commit -m 'Init'
Шаг 4
Создаем новый репозиторий, который будет служить шлюзом для основного
cd ../
git clone --bare public_html project.git
cd public_html
git remote add hub ../project.git
git remote show hub
Последняя команда не обязательна. Она нужна, чтобы удостоверится, что все ок.
Шаг 5
В /public_html/.git/hooks/ создаем файл post-commit и ставим ему права 700.
cd ~/public_html/.git/hooks
touch post-commit
chmod 700 post-commit
nano post-commit
Внутрь помещаем следующее:
#!/bin/sh
echo
echo «Пушим изменения...»
echo
git push hub
Шаг 6
В /project.git/hooks/ создаем файл post-update и ставим ему права 700.
cd ~/project.git/hooks
touch post-update
chmod 700 post-update
nano post-update
Внутрь помещаем следующее:
#!/bin/sh
echo
echo «Вытягиваем изменения...»
echo
cd ~/public_html/ || exit
unset GIT_DIR
git pull hub maste
exec git-update-server-info
Успех!
Это все, после этого можно клонировать репозиторий и работать:
git clone username@server-ip:project.git
комментарии (6)