Как установить GIT на свой сайт и подтягивать изменения из репозитория на GitHub.
Можно заливать на сервер данные из GitHub с помощью сторонних ресурсов, типа DeployHQ. Но здесь мы не будем рассматривать готовые инструменты, а пойдем путем создания своего деплоя через команды в bash файле.
Читайте в другой статье, если потребуется обновлять репозиторий со стороны сервера.
1. Создаём ssh ключ
Статья по созданию и настройки ssh ключа.
Иначе будут ошибки при соединении с GitHub сервером:
Host key verification failed.
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.
2. Устанавливаем git на сервер
Сначала инсталлируем git на свой сервер:
Подробнее о том как проинсталлировать GIT на сервер.
3. Создаем новый репозиторий
Создаём на сайте гитхаб новый репозиторий:
github.com
4. Создаем файл исключений на нашем сервере
Добавляем на удаленный сервер файл с файлами, которые будем игнорировать
5. Клонируем на свой сервер репу
На сервере в директории сайта запускаем команды по очереди:
git add -A
git commit -m "first commit"
git remote add origin https://github.com/ploshadka/repository.git
git push -u origin master
Вводим свой логин и пароль от github.
6. Клонируем себе
Через программу GitHub Desktop, PhpStorm или консоль, склоннировать репозиторий на локальный компьютер.
Ошибки
Если в логах будут ошибки:
fatal: could not read Username for ‘https://github.com’: No such device or address
Надо зайти в
И поменять
url = https://github.com/ploshadka/some-name.git
на
url = git@github.com:ploshadka/some-name.git
7. Клонируем себе
Создаём на сервере файл bash в котором будет содержимое:
# Запуск через cron каждую минуту
# Время
date=$(date '+%d/%m/%Y %H:%M:%S');
# Переходим в категорию GIT
cd '/home/ваш-путь к сайту'
git pull
echo "$date"
echo "Была выполнена команда подтягивающая изменения из гит."
Ошибки
Если данные переносятся на сервер (например, восстанавливается backup), то в первый раз обязательно надо подтянуть изменения из GIT вручную. Иначе скрипт не отработает. Будет сообщать об ошибке доступа.
Запускаем:
И соглашаемся на добавление ssh ключа GitHub в разрешенные для связи с ним.
8. Настроить Cron
Настроить cron на запуск этого скрипта, например, каждую минуту.
Для нашего скрипта это будет выглядеть так:
В той же директории при каждой команде будет записываться лог из последнего действия. Если что-то не работает, там всегда можно будет это обнаружить.
9. Безопасность
Git хранит в служебной директории .git полную копию всего репозитория. Обязательно закройте директорию .git в настройках HTTP сервера, чтобы никто не смог получить доступ к исходным кодам вашего сайта в публичном доступе без авторизации.
Для этого создайте в папке .git файл .htaccess и добавьте туда директиву: