Добро пожаловать на сайт SEDBY

Настройка GIT для проекта на удаленном хостинге

Популярные запросы: тема Omnis, плагин Pagelist, Cotonti 0.9.24.2, ЧПУ, Font Face

  • 108 просмотров
  • 15 ноября, 2024
  • Обновлено: 17 марта, 2025
  • admin
  • Время чтения: 3 минуты
  • 2 (Подробно)

Если вас заинтересовал наш предыдущий пост о преимуществах использования GIT для управления удаленным проектом, продолжим и перейдем к его практической реализации. Для этого нам понадобится всего две вещи: доступ к удаленному хостингу и возможность использования для этого SSH (Secure Shell – защищенный сетевой протокол). Для работы нам понадобится два приложения на ваш выбор: терминал и (опционально) текстовый редактор.

Естественно, на сервере должен быть установлен git. Проверить его наличие (а заодно и версию) можно командой:

git -version

Прежде всего, представимся:

git config --global user.name “ВАШЕ ИМЯ”
git config --global user.email ВАШ_EMAIL

С опцией --global ваши данные будут использованы глобально, во всех проектах. При необходимости вы можете исключить из команд данный ключ и выполнить их в каталоге с необходимым проектом.

Для корректных настроек вам необходимо знать только структуру папок на вашем сервере. Мой вариант базируется на типовой структуре серверов, с которыми я работаю, поэтому в вашем случае возможно потребуется корректировка путей.

Первым делом откроем корневой раздел нашего сервера и создадим в нем папку git. В ней будут храниться все наши репозитории-посредники. Да, именно так: работать мы будем не напрямую с репозиторием проекта, а через посредника. Допустим, наш проект будет называться omnis:

cd ~
mkdir git
cd git
mkdir omnis.git
cd omnis.git

Пока что все понятно. Теперь создадим в папке omnis.git пустой репозиторий с начальной веткой master:

git init --bare -b master

В этом репозитории нам необходимо проделать только одну операцию – создать в папке hooks файл post-update:

cat > hooks/post-update
#!/bin/sh

echo
echo "**** Pulling changes into OMNIS [post-update hook]"
echo

cd ~/www/omnis.by || exit
unset GIT_DIR
git pull omnis master
exec git-update-server-info

Для завершения редактирования используем клавиатурное сокращение Ctrl-D, после чего добавим для нашего файла права на исполнение:

chmod +x hooks/post-update

Теперь перейдем в папку с нашим проектом. Обычно она располагается в корневой папке www:

cd ~/www/omnis.by

Здесь мы создаем уже основной репозиторий:

git init -b master

Кстати, опцию -b можно не использовать: по умолчанию git именует все начальные ветки как master.

Добавим все существующие в папке файлы и сформируем первый коммит:

git add .
git commit -m 'initial commit'

Следующим шагом добавим удаленный репозиторий (он же реп-посредник) следующей командой:

git remote add omnis ~/git/omnis.git

Для проверки выведем информацию о репозиториях-посредниках:

git remote show

… и о конкретном репозитории:

git remote show omnis

Обратите внимание на то, что тильды в путях будут преобразованы в полные пути. Это нормально.

Теперь отправим наш первый коммит:

git push omnis master

Осталось только создать в папке hooks файл post-commit:

cat > .git/hooks/post-commit
#!/bin/sh

echo
echo "*** Pushing changes to OMNIS (post-commit hook)  ***"
echo

git push omnis

Для завершения редактирования используем клавиатурное сокращение Ctrl-D. И, аналогично предыдущей операции, добавим файлу post-commit права на исполнение:

chmod +x .git/hooks/post-commit

На этом настройка GIT на удаленном сервере закончена. Для начала работы с нашим проектом запустим терминал в необходимой папке на локальной машине и склонируем в нее наш репозиторий :

git clone ssh://ИМЯ_ПОЛЬЗОВАТЕЛЯ@АДРЕС_СЕРВЕРА/ПОЛНЫЙ_ПУТЬ_К_КОРНЮ/git/omnis.git .

Имя, адрес и путь укажите в соответствии с настройками вашего сервера.

Ранее мы рассказывали о тонкостях переноса сайта на новый домен.

Аватар
  • 3. Oleg
  • 04.04.2025 12:14

Непонятно где взять адрес сервера и полный путь к корню?

Аватар

git add . && git commit -m 'add local edits'

Потом fetch и pull на локальной машине

Аватар

Спасибо за статью! А как поступать в случае если были правки вручную, например по FTP?

Новый комментарий

Ваш комментарий будет доступен для редактирования 10 минут
Блок пользователя
Регистрация на нашем сайте позволит вам общаться на форумах и получить доступ к другому полезному функционалу
Вы вошли как Гость