尝试加载https://domain/path/project.git/HEAD
在 bitbucket 和 github 上都会给我一个 404,根据 git book (git-scm.com),情况不应该如此。
这两个网站是特例还是我做错了什么?
请注意,如果可能,我想避免下载整个存储库。
您正在尝试做的假设是旧的 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
.
(另外,应该注意的是,如果您只想避免“下载整个存储库”,那么您可以简单地进行浅克隆。)
这可以通过Github API完成。只需使用基本身份验证(如果需要)调用 GET/repos/:owner/:repo/commits
并解析 JSON 响应
我了解您的问题是关于 HTTP 的……这只是一种选择。我不相信这是可能的。