2010-10-21 2 views
2

У меня есть два сервера, A и B. A имеет репо и может ssh на B. B - это новый сервер, который я хочу иметь репо, но не могу ssh О. Я пробовал копировать репо, создать пульт для push, git clone с -u ... любые предложения?Как клонировать репо на удаленный сервер с помощью ssh

+0

Если у вас нет SSH доступ, какой доступ * у * у вас есть? До тех пор, пока у вас есть какой-то (возможно, косвенный) доступ к файловой системе, все, что вам нужно сделать, это скопировать файлы ... – Cascabel

+0

Что я имею в виду, так это то, что сервер B не может добраться до сервера A из-за брандмауэра. A - это внутренний сервер разработки, а B - внешний сервер для рассмотрения консультантами. – user481826

ответ

0

Один из способов установить which'll B в качестве удаленного к А, было бы установить на Gitosis B, а затем подтолкнуть репо от А до В.

Более подробную информацию о Gitosis см http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way. Если вы используете git, но не gitosis, вам не хватает!

+0

Спасибо, я посмотрю на гитоз и посмотрю, чего я упускаю. – user481826

+0

Я установил gitosis и смог нажать репо на внешний сервер. Благодаря! – user481826

0

Что вы имеете в виду, когда говорите, что пытались копировать? Вы пробовали использовать scp так?

scp -R path/to/repo/on/A [email protected]:desired/path/to/repo/on/B 

Обратите внимание, что путь следующий : является относительно домашней директории пользователя, если он не начинается с /.

+0

Я попытался скопировать репо, как с scp, так и с tar. Я могу получить файлы там, но затем, когда я пробую git-журнал нового репо, возникают фатальные ошибки. – user481826

2

Создать пустой репозиторий B

B$ git init --bare repo.git 

затем нажмите на него с помощью A протокола SSH

A$ git push ssh://B/full/path/to/repo.git 
+0

Хм, так что я попытался это ... B $ мерзавец INIT --bare внешнего A $ мерзавца нажимного SSH: //[email protected]/full/path/to/repo.git Я понимаю, что эти сообщения: Нет ссылок общего пользования и не указаны; ничего не делать. Возможно, вам нужно указать ветку, такую ​​как «мастер». фатальный: удаленный конец неожиданно повесил трубку – user481826

+0

@ user481826: Извините, я перепутал более простой в использовании, но более сложный подход к настройке, где вы создаете «удаленную» конфигурацию для перехода от A к B с помощью конфигурации на основе URL- меньше, когда вам нужно указать ветку (ветви) для нажатия или использовать '--all' /' --mirror'. –

+0

A $ git push ssh: //B/full/path/to/repo.git '*: *' – cmcginty

Смежные вопросы