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

如何通过Github API获取指定分支的提交历史记录

实现方案

有成熟的可落地方案,核心逻辑是利用主流Git托管平台提交查询接口的分支过滤参数,无需克隆仓库、检出分支即可获取对应分支的提交链,返回结果和本地执行git log <分支名>的顺序、内容完全一致。

GitHub 平台调用示例

  • 接口参数说明:调用/repos/{所有者用户名}/{仓库名}/commits接口时,传入sha参数指定目标分支名即可过滤出对应分支的提交记录
  • curl 调用命令:
curl \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <你的GitHub访问令牌>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  "https://api.github.com/repos/octocat/hello-world/commits?sha=main&per_page=100"
  • 补充说明:per_page参数最大支持100,提交数量超过单页上限时追加page参数翻页拉取即可。

GitLab 平台调用示例

  • 接口参数说明:调用/projects/{项目ID}/repository/commits接口时,传入ref_name参数指定目标分支名即可
  • curl 调用命令:
curl --header "PRIVATE-TOKEN: <你的GitLab访问令牌>" \
"https://gitlab.com/api/v4/projects/12345/repository/commits?ref_name=main&per_page=100"

Gitee/自建Gitea 平台调用示例

  • 接口参数说明:调用/repos/{所有者用户名}/{仓库名}/commits接口时,传入sha参数指定目标分支名即可
  • curl 调用命令:
curl -X GET --header 'Content-Type: application/json;charset=UTF-8' \
"https://gitee.com/api/v5/repos/oschina/gitee/commits?sha=main&access_token=<你的Gitee访问令牌>&per_page=100"
通用注意事项
  • 私有仓库必须传入对应平台的访问令牌,且令牌需要开通仓库读取权限
  • 所有平台接口默认按提交时间倒序返回,和本地git log默认输出顺序完全匹配
  • 自建Git服务只要是基于主流Git托管系统搭建的,均支持上述分支过滤参数,直接对应调整接口域名、参数即可使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:15:03