Так как на тарифах виртуального хостинга Timeweb нет возможности добавить иной SSH-доступ, кроме основного, то работа в пределах такого тарифа возможна только под одним юзером.
-
Для начала необходимо включить SSH-доступ, для чего требуется привязка телефона с подтверждением SMS-кодом.
-
Заходим на сервер, где
<user>
соответственно логин, а<server>
хост, который можно узнать в панели управления:
ssh <user>@<server>.timeweb.ru
- Заходим в папку проекта, для примера
my-site
, и инициализируем там репозиторий:
cd my-site
git init
- Добавляем в конфиг свою почту и имя пользователя (если до этого не было):
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
Посмотреть настройки можно командой:
git config --list
- Добавляем какой-нибудь файл, например
.gitignore
, коммитим:
git add .
git commit -m "init"
- Создаем в корне папку
git
и переходим в нее:
cd ~
mkdir git
cd git
- Тут инициализируем bare-репозиторий:
git clone --bare ../my-site my-site.git
- Возвращаемся в папку проекта и добавляем туда:
cd ~/my-site
git remote add shared ../git/my-site.git
- Добавляем хук
post-update
в bare-репозиторий:
cd ~/git/my-site.git/hooks
С содержимым:
#!/bin/sh
cd /home/u/user/my-site || exit
unset GIT_DIR
git pull shared master
exec git-update-server-info
Где /u/user/
- это первая буква логина и сам логин. Даем права на запуск:
chmod +x post-update
- Добавляем хук
post-commit
в репозиторий проекта:
cd ~/my-site/.git/hooks
С содержимым:
#!/bin/sh
git push shared
Даем права на запуск:
chmod +x post-commit
- Возвращаемся в папку проекта:
cd ~/my-site
И пушимся:
git push --set-upstream shared master
- Локально добавляем удаленный репозиторий и обновляемся:
git remote add origin ssh://<user>@<server>.timeweb.ru/home/<u>/<user>/git/my-site.git
git pull origin master
Примечание:
в случае работы с IDE JetBrains PhpStorm/WebStorm достаточно:
а) в стартовом окне выбрать Checkout from Version Control -> Git
б) в произвольном открытом проекте в верхнем меню выбрать VCS -> Checkout from Version Control -> Git
и в поле Git Repository URL ввести:
ssh://<user>@<server>.timeweb.ru/home/<u>/<user>/git/my-site.git
После запуска проекта пулить сразу уже не требуется.
Работаем как и с обычным репозиторием. Конец, успех.