2013-03-05 48 views
1

按照answer中建議的步驟,我設法在本地機器上設置一個倉庫,將其推送到dropbox文件夾上的倉庫,並將其克隆到另一個本地位置。也就是說,在目錄~/project-image中調用git clone ~/Dropbox/git/project.git .。這意味着它似乎工作得很好 - 至少對我來說是一個人。共享保存在dropbox上的git倉庫

但是,我不能克隆它使用https。從dropbox我得到的~/Dropbox/git/project.gitURL然後在另一個目錄~/project/image2~試圖像

git clone https://www.dropbox.com/sh/xxxxxxx/xxxxxxx . 

。這並沒有工作...我得到了以下錯誤:

warning: remote HEAD refers to nonexistent ref, unable to checkout. 

在我提到現在看來似乎是可以從dropbox分享純倉庫的答案。怎麼樣?看起來像子目錄的URL爲每個子目錄更改,因此git無法克隆。這是原因嗎?有沒有辦法解決這個問題?請注意,我不想將存儲庫放置在我的dropbox的公共部分,並且我希望在需要時共享鏈接。


編輯 - 驗證庫上dropbox按@Idx建議我跑,在~/Dropbox/git如下:cat project.git/HEAD其返回ref: refs/heads/master

+0

首先檢查你的git元數據是否正常。 'cat .git/HEAD'說什麼?它應該引用一個頭,例如'git的/裁判/頭/ master'的。 – ldx 2013-03-05 14:52:05

+0

@Idx:看我的編輯。我得到了與你所寫的內容類似的東西,但並不完全一樣。 – Dror 2013-03-05 14:59:15

+0

啊我看到你正在嘗試使用http - 不行。它需要一個服務器端後端讓git工作。 – ldx 2013-03-05 15:13:00

回答

1

如果git能夠從不支持git的智能http協議的http服務器克隆或獲取(Dropbox就是這種情況),您需要隨時運行git update-server-info更新ref (分支或標籤)以這種方式被服務。

根據您打算如何更新該存儲庫,您可以設置一個或多個掛鉤來自動爲您執行此操作。

+0

這不需要服務器端WebDAV支持嗎? – ldx 2013-03-05 16:34:07

+0

@ldx不,只是簡單的HTTP。實際上,它比這更通用;運行該命令的存儲庫也可以使用FTP或rsync訪問。 – qqx 2013-03-05 17:32:31