2012-03-21 263 views
2

我們如何克隆一個回購協議是在本地目錄到遠程mchine目錄混帳克隆回購協議向遠程機器

machine1:/usr/rep/ -> clone this to machine2:/var/new_repo 

究竟是什麼

EDIT1 我想實際的命令從機器創建克隆

EDIT2 我也嘗試了下面的git clone --bare [email protected]/usr/repo/var/repo /不知道是否有正確的方法做

EDIT3 這是EDIT2

執行命令

You have no controlling tty and no DISPLAY. Cannot read passphrase. fatal: The remote end hung up unexpectedly ================================================Initialized empty Git repository in /var/repo/ DEBUG: remote_exec loop:$stderr: Initialized empty Git repository in /var/repo/ DEBUG: create_repoX loop: $stdout: DEBUG: create_repoX loop: $stderr: Initialized empty Git repository in /var/repo/ DEBUG: create_repoX loop: $exit: 32768

+0

您如何提供訪問權限?推(服務器是遠程的)還是拉(服務器是本地的)? – Reactormonk 2012-03-21 13:02:18

回答

0

你不後的錯誤。您在遠程計算機上運行git clone並從machine1克隆。如果這不可行,只需在機器1上本地克隆它,然後將整個文件夾複製到machine2。

+0

:我已經嘗試了以下,但似乎沒有工作,任何想法爲什麼ssh site.com「git clone --bare https://[email protected]/usr/repo//var/repo /」 – Rajeev 2012-03-21 13:04:41

+0

什麼是錯誤你得到的消息? – 2012-03-21 13:07:39

+0

該命令要求輸入密碼並退出 – Rajeev 2012-03-21 13:10:10

2

從機2

ssh machine2 'git clone machine1:/path/to/repo /local/path/to/new/repo' 

傳遞命令ssh和克隆庫你需要在一個MACHINE1 SSH服務器。然而,你甚至可以複製整個文件夾,因爲在git中,存儲庫只是一個文件夾,因此複製它將複製存儲庫。

scp -r /path/to/repo machine2:/var/new_repo 
2

我認爲有正當理由的「推」克隆到遠程機器上,而不是運行在遠程機器本身,我沒有看到通過其他的答案這裏所涉及的克隆。事實上,我有理由多次這樣做。

我寫了一個腳本來輕鬆地處理它:git-pushclone

說明: 腳本克隆一個倉庫遠程服務器 ,使這一新的存儲庫中的當前的遠程 庫。使用SSH協議。

這實現了一種推式克隆方式,無論何時 不需要從遠程機器克隆時,這都是必要的。例子有:

  1. 沒有傳入訪問本地服務器: 當發生本地機器上開發哪一個不希望授予任何遠程訪問,但希望「發佈」發展到服務器,然後其他人可以訪問該服務器。

  2. 公用登錄到遠程服務器: 當沒有單獨訪問遠程服務器但只能以組用戶身份登錄時:在這種情況下,從遠程服務器啓動克隆需要爲本地存儲庫服務器在服務器的組帳戶中。