git - 可以在不克隆的情况下通过 http 读取 git 元数据吗

标签 git http

尝试加载 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/

相关文章:

c++ - 使用C++解析HTTP请求流: any not state machine way with same speed or better?

git pull 结果为 "does not appear to be a git repository"

javascript - 尝试将我的 Node.js 应用程序推送到 Heroku,错误 : ENOENT with jade npm

git - JQ - 如何定义过滤器以从输出数组中删除括号、引号和逗号

iOS 无法执行 HTTP GET 请求 -Error Domain=NSURLErrorDomain Code=-1012

Swift Alamofire POST 请求变为 GET

java - Jenkins上的Maven部署文件错误

git - 如何在 github/bitbucket 中提出代码建议?

security - 身份验证中的随机数使用

http - 为什么服务器 HTTP header 存在?