Настройка 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 .
Имя, адрес и путь укажите в соответствии с настройками вашего сервера.
Ранее мы рассказывали о тонкостях переноса сайта на новый домен.
Непонятно где взять адрес сервера и полный путь к корню?
git add . && git commit -m 'add local edits'
Потом fetch и pull на локальной машине
Спасибо за статью! А как поступать в случае если были правки вручную, например по FTP?
Новый комментарий
Ошибка
Выполнено