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

如何通过GitLab API获取两分支差异提交ID、说明及curl请求语法

GitLab 查询两分支差异提交的 curl 请求用法

前置准备

你需要先准备3个必填信息:

  • GitLab 实例访问地址(例如 https://gitlab.mycompany.com)
  • 目标项目的 ID(可在项目主页「设置」页查看,也可使用转义后的项目路径,例如 group%2Fproject)
  • 拥有 read_repository 权限的个人访问令牌(PAT)

基础 curl 请求写法

如果你需要查询 feature 分支存在、但 master 分支遗漏的提交,请求写法如下:

curl --header "PRIVATE-TOKEN: 替换为你的个人访问令牌" "https://替换为你的GitLab地址/api/v4/projects/替换为项目ID/repository/compare?from=master&to=替换为目标feature分支名&straight=true"

如果需要查询 master 有、feature 没有的提交,交换 from 和 to 参数的分支名即可。

返回结果中 commits 数组即为两个分支的差异提交列表,每个元素的 id 是提交ID,title、message 为对应的提交说明。

如果需要直接过滤出仅提交ID和提交说明的结果,可以结合 jq 工具处理:

curl --header "PRIVATE-TOKEN: 替换为你的个人访问令牌" "https://替换为你的GitLab地址/api/v4/projects/替换为项目ID/repository/compare?from=master&to=替换为目标feature分支名&straight=true" | jq '.commits[] | {commit_id: .id, commit_msg: .title}'

语法规则说明

  • straight=true 是必加参数:不加的话GitLab会默认走三方合并逻辑,仅返回两个分支最新HEAD的差异内容,不会返回全量差异提交
  • 项目路径如果包含/,必须转义为%2F,否则会触发404错误
  • 分支名如果有特殊字符,需要做URL转义
  • 个人访问令牌必须放在请求头的PRIVATE-TOKEN字段,禁止放在URL参数中避免日志泄露
  • 该接口默认最多返回100条提交,如果差异提交数超过100,需要追加per_page和page参数分页查询

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:15:01