尝试加载 https://domain/path/project.git/HEAD
在 bitbucket 和 github 上给我一个 404,根据 git book (git-scm.com),事实并非如此。
这两个网站是特例还是我做错了什么?
请注意,我希望尽可能避免下载整个存储库。
最佳答案
您尝试执行的操作假定使用旧的 Git HTTP 协议(protocol),该协议(protocol)仅使用静态文件。 Github 和 Bitbucket 使用 Git 较新的 HTTP 协议(protocol),有一个事件的(编程的)服务器,所以没有名为“HEAD”的 URL。
因此,您至少需要使用智能客户端与它进行通信。然而,这并不一定意味着您需要克隆存储库;很可能有工具可以与服务器对话,而无需进行完整克隆。例如,有 git ls-remote
:
$ git ls-remote http://server/git/project
7f38468acf1de9b73d931aebf9a8add8f691a6dc HEAD
7f38468acf1de9b73d931aebf9a8add8f691a6dc refs/heads/master
有关详细信息,请参阅 git-http-backend
的联机帮助页。
(另外,应该注意的是,如果您只想避免“下载整个 存储库”,那么您可以简单地进行浅克隆。)
关于git - 可以在不克隆的情况下通过 http 读取 git 元数据吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18008480/