You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效查找大型远程GitHub仓库分支的公共祖先SHA?

问题核心与需求

我需要获取chromium仓库主分支与近27000个标签关联特性分支的公共祖先提交SHA。

已探索方法及痛点

常规Git工具的问题

git merge-base的工作原理是从分支顶端遍历父提交,直到找到共享提交,但该命令需要先执行git fetch,会下载提交SHA以外的大量数据,针对超大规模仓库效率极低。

GitHub API的局限

  • GitHub的REST和GraphQL API均无内置的merge-base实现,必须手动遍历各分支的提交历史
  • GraphQL查询限额为500000点(约等价于5000次查询),按27000个特性分支计算,理论上每个分支仅能遍历约20次提交就会触达限额,且标签数量还在持续增长
  • REST API的限额更严格,完全无法支撑需求

其他尝试过的交互方式

试过GitHub GraphQL、GitHub REST API、git clone/fetch、直接对接Git底层服务等多种与仓库交互的方式,构建提交SHA树的过程都存在无法解决的低效问题。

待验证的替代方向

考虑直接通过HTTP及自定义头与Git底层服务交互(可对接chromium的GitHub镜像或Piper/Gitiles托管的仓库),但存在以下疑问:

  • 是否可以仅下载目标分支的提交SHA及其父提交数据,实现高效遍历?
  • 能否基于这些精简数据手动实现merge-base逻辑?
  • 目前找不到Git底层通信服务的优质参考文档

内容的提问来源于stack exchange,提问作者DaMaxContent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 02:15:13