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

Github Compare two commits API 大提交对比无法获取全量变更文件

GitHub Compare two commits API 超300个变更文件获取方案

GitHub 官方的 Compare two commits REST API 存在未在公开文档中标注的硬限制:单次请求最多返回 300 个变更文件,且变更文件列表本身不支持分页,仅靠该接口无法直接获取1000个这类超量的差异文件。

你可以通过以下两种替代方案实现全量变更文件获取:

  • 拆分对比区间分批次查询
    先调用 Compare API 拿到两个目标提交之间的全量提交记录(提交列表支持分页获取),再逐个调用单个提交查询接口 GET /repos/{owner}/{repo}/commits/{commit_sha} 拉取每个提交对应的变更文件,最后对所有文件列表做去重合并,即可得到两次提交之间的全量差异文件。如果遇到单个提交修改超过300个文件的极端场景,可以再将提交区间做更细粒度的拆分处理。
  • 拉取提交树手动计算差异
    分别调用 GET /repos/{owner}/{repo}/git/trees/{tree_sha}?recursive=1 接口拉取base提交和head提交的全量仓库树信息,对比两个提交的文件路径、哈希值,即可直接得到所有新增、修改、删除的文件列表。如果还需要对应文件的具体diff内容,可再针对每个差异文件单独拉取内容对比。

目前没有办法绕过原Compare API的300文件限制直接通过该接口拿到全量变更,上述替代方案可以实现完全相同的业务效果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 01:06:03