0

我们使用 git http(s) 协议(https://www.git-scm.com/docs/http-protocol;智能服务)从 GitHub 或 BitBucket 上的存储库中获取所有分支,如下所示:

GET https://github.com/larshp/abapgit.git/info/refs?service=git-upload-pack

响应为我们提供了给定存储库中所有分支的列表。

现在我们需要确认给定的提交是否存在于特定的分支中。如果我们可以通过 git http 协议获取给定分支的提交列表,那就太好了。如何指定此类请求?非常感谢您的帮助!

相关:恢复到任何单个提交 #3040

4

1 回答 1

1

如果要检查分支的历史记录,包括它包含的提交,则需要克隆存储库。

Git 智能 HTTP 协议旨在 (a) 枚举分支、标签和其他 refs,以及 (b) 在协商双方拥有哪些对象后交换对象。它不提供查询远程数据的选项,因为有很多方法可以这样做,其中一些非常昂贵。

您的服务器实现(GitHub 或 Bitbucket)可能会通过独立的 API 提供其中一些功能,但通常遍历分支的历史在 API 上效率不高,因为它需要很多请求,这很慢并且通常会让你限价。克隆是获取此信息的最快方法。

于 2019-11-11T22:00:24.283 回答