Git: перенести существующий репозиторий с ПК на сервер, клонировать с сервера - PullRequest
16 голосов
/ 09 октября 2010

У меня есть существующий репозиторий Git на моей локальной машине. Я хотел бы переместить этот репозиторий на мой веб-сервер, а затем git clone на моем локальном компьютере, чтобы проверить мой репозиторий с сервера. Я планирую затем разрабатывать на своем локальном компьютере и отправлять обновления обратно на сервер. Я могу SSH с моей локальной машины на сервер, но не наоборот. Как я должен идти об этом? Я думаю, что git bundle следует каким-то образом использовать, хотя, когда я попытался git clone моего пакета на моем сервере, я получил «предупреждение: удаленный HEAD ссылается на несуществующую ссылку, невозможно извлечь». Мой локальный компьютер работает под управлением OS X, сервер работает под управлением Linux.

Ответы [ 3 ]

29 голосов
/ 09 октября 2010

На сервере Linux, в новом каталоге выполните:

git init --shared --bare

Затем на вашем локальном компьютере:

git remote add origin server:path/to/repo
git push --all origin

После этого на сервере будет полная копия репозитория, и вы сможете выдвигать и извлекать его из него. Нет необходимости проверять другой клон с сервера, если он у вас уже есть.

9 голосов
/ 11 сентября 2011

Вместо «git push origin master» используйте «git push --all origin», чтобы перемещаться по всем ветвям, а не только по основной ветви.

2 голосов
/ 09 октября 2010

Как насчет этого:

local> cd my_repo.git
local> git remote add origin user@host:/path/to/my_repo.git
local> git config branch.master.remote origin
local> git config branch.master.merge refs/heads/master
local> git push origin master

Это отправит данные из вашего локального репо на ваш сервер. Затем сделайте это:

local> cd ..
local> git clone user@host:/path/to/my_repo.git my_repo2.git

Тогда вы будете клонированы с сервера. Если вы удовлетворены, вы можете избавиться от исходного репо и, возможно, переименовать второе.

...