可以通过http读取git元数据而无需克隆

时间:2013-08-02 03:49:58

标签: git http

尝试加载https://domain/path/project.git/HEAD在bitbucket和github上都给出了404,根据git book(git-scm.com),情况并非如此。

这两个网站是特例还是我做错了什么?

请注意,我希望尽可能避免下载整个存储库。

2 个答案:

答案 0 :(得分: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

的联机帮助页

(另外,应该注意的是,如果你想要避免的只是“下载整个存储库”,那么你可以简单地进行浅层克隆。)

答案 1 :(得分:0)

可以使用Github API完成此操作。只需使用基本身份验证(如果需要)调用GET到/repos/:owner/:repo/commits并解析JSON响应

我理解你的问题是关于HTTP ......这只是一个替代方案。我不相信这是可能的。