В данной статье речь пойдёт об одном из методов организации рабочего процесса с помощью системы контроля версий Git. Главная идея системы — создание на сервере двух репозиториев: пустого bare-репозитория и обычного репозитория с рабочей копией сайта.
Естественно, в первую очередь нужно, чтобы Git был установлен на локальном компьютере. На Hostland мы это сделали за Вас. Если на Вашем компьютере не установлен Git, то для установки Git на локальной машине вы можете использовать инструкцию с официального сайта Git
Итак, два репозитория. Назовём их условно Hub и Prime:
Удалённые копии, имеющие ssh-доступ работают с Hub-репозиторием, забирая из него все изменения, сделанные в Prime. И наоборот, все исправления и добавления, совершённые локально, будут забираться Prime-репозиторием из Hub. Получается некая триада.
Как Вы понимаете, нужно обеспечить ssh-доступ с локальной машины к серверу. Для этого необходимо сгенерировать пару ssh-ключей и добавить публичный ключ в файл authorized_keys на сервере. Как это сделать для разных операционных систем:
Вначале необходимо сгенерировать пару ключей ssh в папке .ssh/ на локальной машине:
ssh-keygen -t rsa
Затем копируете содержимое файла id_rsa.pub (локальная машина) и, создав новый файл authorized_keys на сервере в директории /home/hostXXXXXXX/.ssh/ через файловый менеджер панели управления, сохраняете в нём данное содержимое.
Для работы потребуется программа PuTTY - её можно скачать с официального сайта
После того как Вы её скачаете, из архива распакуйте папку PuTTY Portable, будем работать с ней. В папке PuTTY Portable найдите файл puttygen.exe и запустите его.
Тип ключа для генерации выберите SSH-2 RSA,
Длина генерируемого ключа(в битах) - 2048
Жмём Сгенерировать. Хаотично перемещайте курсор мыши внутри окна программы. Введите желаемый комментарий к созданным ключам, чтобы Вам было удобнее различать созданные ключевые пары в будущем.
Сохраните открытый и личный (закрытый) ключ, не перепутайте ключи в будущем. (Рекомендуем открытым ключам давать расширение .pub, а закрытым .ppk)
Не закрывая окно программы генерации ключей, скопируйте открытый ключ и, создав новый файл authorized_keys на сервере в директории /home/hostXXXXXXX/.ssh/ через файловый менеджер панели управления, сохраните в нём содержимое открытого ключа.
После этого, для удобства подключения, можно создать файл конфигурации config в папке со сгенерированными ключами:
Host servXX.hostland.ru HostName servXX.hostland.ru User hostXXXXXXX Port 1024 IdentityFile ~/путь_к_папке_с_ключами/.ssh/id_rsa_hostXXXXXXX
Протестируйте подключение с помощью команды:
ssh hostXXXXXXX@servXX.hostland.ru
Настройка работы с Git на сервере:
На нашем хостинге предусмотрен ssh клиент, использующий эмулятор терминала прямо в браузере (подробнее здесь). Из панели управления перейдите в раздел
Перейдите в рабочий каталог своего сайта командой:
cd ваш-домен/htdocs/www
Инициализируем git-репозиторий (наш Prime) и сделаем первый коммит:
git init git add . git commit -m "First commit"
Добавим bare-репозиторий ("голый" репозиторий) где-нибудь вне рабочего каталога сайта, к примеру, в папке htdocs:
cd .. mkdir hub.git cd hub.git git --bare init
После этого нужно добавить этот репозиторий как удалённый в рабочем каталоге и "запушить" внесённые ранее изменения:
cd ../www git remote add hub ~/ваш-домен/htdocs/hub.git/ git push hub master
На этом настройка на сервере завершена.
Настройка работы с Git на локальной машине:
Если на Вашем компьютере не установлен Git, то для установки Git на локальной машине вы можете использовать инструкцию с официального сайта Git
Создайте пустую папку в удобной для Вас директории на своём компьютере. Назовём её условно my_project
Откроем терминал уже на локальной машине и перейдём в эту папку:
cd my_project
Далее, нужно клонировать все данные из удалённого bare-репозитория:
git clone ssh://hostXXXXXXX@servXX.hostland.ru/home/hostXXXXXXX/ваш-домен/htdocs/hub.git
Теперь у Вас есть локальная копия проекта и после внесения необходимых Вам изменений, Вам понадобится сделать их "push" на сервер. Это можно сделать обычным способом, находясь в папке my_project/www:
git add . git commit -m "Second commit" git push origin master
Теперь все изменения внесены в ветку master на bare-репозитории. Для того, чтобы добавить их в Prime, также воспользуемся SSH-клиентом из панели управления и, перейдя в ваш-домен/htdocs/www введём следующую команду:
git pull hub master
Изменения внесены.
Удачной работы! Если возникнут вопросы - напишите нам, пожалуйста, тикет из панели управления хостингом, раздел «Помощь и поддержка».