Чтобы ответить на ваш первый вопрос, да, вы можете.Предположим, удаленный каталог ssh://user@host/home/user/repo
.Это должен быть git-репозиторий, создайте его с помощью git init --bare
или scp
вашего локального каталога repo.git
(можно создать с помощью git clone
) для удаленного доступа.Затем выполните:
git remote add origin ssh://user@host/home/user/repo
git push --all origin
Это перетянет все локально существующие ветки в удаленный репозиторий.
Чтобы перейти к следующему вопросу, вы сможете сделать то же самое, используядругой набор команд.Попробуйте это:
$ cd /var/www # or wherever
$ mkdir somesite
$ cd somesite/
$ git init
$ git --bare update-server-info
$ git config receive.denycurrentbranch ignore
$ cat > hooks/post-receive
#!/bin/sh
git checkout -f
^D
$ chmod +x hooks/post-receive
Вы, конечно, выполните команды удаленного / push выше после этого шага.Возможно, вам придется проверить определенную ветку после этого, чтобы клон «somesite» на сервере фактически знал, какой ветви следовать.С этого момента отправка в этот репозиторий должна инициировать повторную проверку этой ветви.