2013-08-02 71 views
1

試圖加載https://domain/path/project.git/HEAD在bitbucket和github上給我一個404,根據git book(git-scm.com),這不應該是這樣。可以通過http讀取git元數據而無需克隆

這兩個網站是特例還是我做錯了什麼?

請注意,如果可能,我想避免下載整個存儲庫。

+0

你是什麼意思的git元數據? – John

+0

主要是提示主分支和最後提交時間戳的散列值。 – seininn

回答

1

你想要做的是假設舊的Git HTTP協議,它只是使用靜態文件。 Github和Bitbucket使用Git最新的HTTP協議和一個活動(編程)的服務器,所以沒有名爲「HEAD」的URL。

因此,您至少需要使用智能客戶端與它溝通。但是,這並不一定說您需要克隆存儲庫。可能有工具可以與服務器交談,而無需進行完整的克隆。例如,有git ls-remote

$ git ls-remote http://server/git/project 
7f38468acf1de9b73d931aebf9a8add8f691a6dc  HEAD 
7f38468acf1de9b73d931aebf9a8add8f691a6dc  refs/heads/master 

欲瞭解更多信息,請參閱聯機幫助頁git-http-backend

(此外,應該注意的是,如果你想避免被「下載整個庫」,那麼你可以簡單地做一淺克隆。)

+0

git ls-remote只能給你每個ref的散列。它不能直接給你的內容。 – linquize

0

這可以與Github API完成。只需使用基本身份驗證(如果需要)調用GET以/repos/:owner/:repo/commits並解析JSON響應

我知道您的問題涉及HTTP ...這只是一種替代方案。否則我不相信這是可能的。