2011-04-19 114 views
2

我可以從我的工作機器ssh到我家的機器混帳克隆到遠程機器

這工作

工作$> SSH -X -Y [email protected]

現在,如果我想克隆我的工作機器上的git repo到我的家用機器。我發出命令

工作$> git的克隆〜/ my_new_work_git_repo [email protected]:/家庭/ MYNAME

但這最終建立了一個名爲 「[email protected]」 與子目錄「home」,然後是「myname」在mY工作機器上。回購得到克隆到我的本地工作機器上這個愚蠢的命名目錄,無論我嘗試什麼URL方案ssh://或rsync://

我在做什麼錯了。我通過幾次的那個似乎相關問題閱讀,但無法弄清楚,爲什麼失敗

回答

7

這是一個有點硬從你的問題哪個方向,你正在試圖克隆告訴。

如果你的倉庫就在你的家機器,並且您試圖將其克隆到您的工作機器上,那麼您的參數順序就會倒退。這是git clone original clone,所以你的情況:

git clone [email protected]:/home/myname ~/my_new_work_git_repo 

如果你的意思是你想克隆一個倉庫是在工作,這樣你就可以擁有它,你家的機器上,那麼你就需要能夠SSH在另一個方向;從你的家用機器到你的工作機器。您不能通過SSH「推送」克隆,只能「拉」(即,只能在本地計算機上創建克隆,無論是從本地還是遠程回購)。

如果您需要從工作機器到您的家用機器的回購,但不能從您的家用機器SSH進入,您可以克隆到一個新的裸存儲庫,然後scp它到您的家用機器。現在,當你在家時,你可以克隆那個裸倉庫,使用它,推送它等等。當你在工作時,你可以從中拉出來,推動它,等等。

這裏是如何做到這一點的示例:

Work$> git clone --bare ~/my_work_repo repo.git 
Work$> scp -r repo.git [email protected]:/home/myname 
Work$> git remote add home [email protected]:/home/myname/repo.git 

Home$> git clone repo.git my_home_repo 
Home$> cd my_home_repo 
Home$> # edit, commit, etc 
Home$> git push origin 

Work$> git remote update 
Work$> git pull home master 
+2

感謝布萊恩:「你不能‘推拉‘(即’通過SSH,你可以只克隆’你只能創建克隆本地機器,無論是從本地還是遠程回購)。「這就是我正在尋找的答案。我已rsynced我的回購,並將按照您的工作流保持同步 – harijay 2011-04-19 23:09:36

+0

scp -r需要作爲文件夾需要遞歸傳輸。 (stackoverflow不允許1字符編輯) – flurdy 2012-01-24 15:03:18

+0

@ flurdy謝謝,是的,這就是我的意思。 – 2012-01-24 23:48:20