Гит — это ок. В 2016-м году файлики через FTP никто не таскает. Почти все знакомы с базовыми командами, но не каждый умеет настраивать git на хостинге (о облачных выделенных серверах я вообще молчу). Поэтому я решил выложить для всех свою шпаргалку о разворачивании гита на хостинге. В моем случае — это Бегет, но у других хостеров примерно так же.

image



Шаг 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)


  1. andreymal
    27.05.2016 01:21
    +1

    Надеюсь, вы в курсе, что такой способ использования гита привёл к нашумевшему решету и утечке исходников кучи сайтов и компаний, включая яндекс?


    1. Shugich
      27.05.2016 01:22

      Признаться, не в курсе. Но если вы поделитесь ссылкой на то как надо делать, то буду очень признателен.


      1. andreymal
        27.05.2016 01:25

        Как делать, довольно очевидно: хранить исходники и репозитории где угодно, но за пределами public_html :)

        Описание решета — https://habrahabr.ru/post/70330/


        1. Shugich
          27.05.2016 01:27

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


  1. lair
    27.05.2016 01:29

    Почти все знакомы с базовыми командами, но не каждый умеет настраивать git на хостинге

    Начнем с простого вопроса: зачем?


  1. mmjurov
    27.05.2016 01:30

    Тема жёванная-пережёванная, со всех сторон, по очень много раз. Да и мануал, если честно, так себе.
    Писали, видимо, под влиянием этой статьи. Зачем? Ведь там то же самое + еще много больше и более понятным языком.