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

如何使用Azure DevOps REST API获取两次提交间的提交列表

Azure DevOps Git Commits API 返回全部提交的问题解决

我尝试使用Azure DevOps的Git提交REST API,指定了searchCriteria.fromCommitId和searchCriteria.toCommitId参数,但API返回了仓库的全部提交,而非预期的两个提交之间的提交列表。使用的API请求地址如下:
https://dev.azure.com/xxx/xxxx/_apis/git/repositories/xxxxx/commits?api-version=7.0&searchCriteria.fromCommitId={fromcommit}&searchCriteria.toCommitId={tocommit}

问题原因及修复方案

  • 核心原因:fromCommitId和toCommitId仅能筛选同一提交链上、以toCommitId为终点、fromCommitId为祖先的提交。如果两个提交无直接父子/祖先关系(比如跨分支),API会忽略范围条件返回全部提交;另外提交ID格式错误(如短哈希、分支名)也会导致筛选失效。

  • 修复步骤:

    1. 确认提交关联性:先在Azure DevOps网页端的提交历史中,检查fromCommitId是否是toCommitId的祖先提交(属于同一分支的提交链路)。若跨分支,需改用对比参数。
    2. 校验提交ID格式:确保{fromcommit}和{tocommit}是完整的40位提交哈希值,不要使用短哈希或分支名称。
    3. 跨分支范围请求写法:如果需要获取两个不同分支提交的差异范围,替换参数为:
      ?api-version=7.0&searchCriteria.compareVersion.version={fromcommit}&searchCriteria.compareVersion.versionType=commit&searchCriteria.targetVersion.version={tocommit}&searchCriteria.targetVersion.versionType=commit
      
    4. 限定分支范围(可选):若只需特定分支上的提交,添加分支筛选参数:
      &searchCriteria.itemVersion.version=目标分支名&searchCriteria.itemVersion.versionType=branch
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 09:32:42