2013-05-08 65 views
1

我見過下面git clone語法我可以直接將本地常規存儲庫作爲裸存儲庫克隆到遠程主機上嗎?

git clone --bare /path/to/repo /path/to/bare/repo.git 

然而,這似乎並沒有當目標是遠程主機上工作的使用。我已經嘗試過幾種格式的目的地,例如加上ssh://[email protected]的前綴 - 但我所有的嘗試都產生了本地創建的文件夾。

很明顯,我發現其他方法(https://stackoverflow.com/a/1402783/741970),但有沒有什麼方法可以使用上面的語法?

+0

什麼是錯誤信息? – 2013-05-08 03:39:14

+0

@EdwardFalk沒有錯誤消息,只是克隆回購,但本地。 – 2013-05-08 04:43:44

回答

1

這是不可能的。 Git尚未在其協議中「在遠程主機上創建此存儲庫,然後使用此歷史記錄填充它」。我已經看到這是在主要的Git列表上討論的,但結果是不確定的(類似「可行,但沒有人需要這個,所以沒有人需要執行」)。

我應該補充一點,在你連接的答案中建議的方法非常呃......。奇怪的,特別是首先做本地裸露克隆的想法。

你應該做的卻是:

  1. 登錄通過SSH遠程主機。
  2. 使用git init --bare創建遠程目錄。確保它具有適當的訪問權限等。
  3. 註銷。
  4. 推送需要從您的本地存儲庫。通常這相當於運行

    git push <that_repo> +refs/heads/*:refs/heads/* +refs/tags/*:refs/tags/* 
    

    如果你打算從你的本地庫,你可能會首先考慮將其添加爲一個名爲遠程與倉庫的進一步交流,像

    git remote add quux ssh://[email protected]/path/to/the/repo.git 
    
1

我不是C的傢伙,但在clone.c's cmd_clone function左右,似乎並不如此。各種幫助信息都使用短語,如git clone <repo> [<dir>],這意味着一個簡單的目錄名稱作爲目的地,並且目標端的所有操作似乎都是標準文件操作,例如遞歸readdirmkdir操作,而回購內容則在調用到transport.c,尤其是here,其中調用transport_get,這是所有關於URL(文件/ git/ssh/etc)。

您可以設置指向服務器(或Dropbox folder)的NFS共享,但這可能不是您所追求的。

1

你在裏面out ...但你可以遠程執行正常的git clone命令:

ssh [email protected] git clone --bare [email protected]:/path/to/repo /remote/path/to/bare/repo 

當然,NA T和權限可能會使這成爲不可能取決於您的設置...

但回答你的問題,不,你不能使用你想要做的事情你想做的事情的語法。

相關問題