GitVersion ignore-commits-before配置在DevOps流水线不生效问题
问题原因
版本号计算不一致问题核心是GitVersion版本差异导致的配置兼容性问题:
ignore.commits-before配置在Mainline模式下的生效逻辑,在GitVersion v5.4.0版本才完成修复,DevOps流水线使用的v5.3.7版本低于修复版本,该配置在Mainline模式下完全不生效,会统计所有历史提交计算版本号,因此输出的版本号远高于本地结果。- 当前使用的0.9.11版本GitVersion Task,默认绑定的就是5.3.x系列的GitVersion.Tool,因此会调用旧版本工具执行计算。
可行解决方案
以下方案按改造成本从低到高排序:
对齐本地与流水线的GitVersion版本(最推荐)
将DevOps流水线的GitVersion Task升级到最新稳定版,同时显式指定使用v5.8.1及以上版本的GitVersion.Tool,和本地运行环境完全对齐,无需修改现有GitVersion.yml配置即可正常生效。
注意升级后需要确认流水线的Git拉取设置关闭浅克隆,拉取完整提交历史,避免版本计算异常。打版本基准标签兼容旧版本
如果暂时无法升级流水线工具版本,可以在2021-11-20T14:00:00之后的第一个有效提交上,打一个符合SemVer规范的0.1.0标签。v5.3.7版本会优先读取最近的标签作为版本计算基准,同样可以实现版本号重置的效果。全量配置忽略提交SHA
如果需要重置的历史提交数量较少,可以将所有需要忽略的提交SHA全部添加到ignore.sha列表中,该配置在v5.3.7版本中可正常生效,但该方案仅适合历史提交少的场景,维护成本较高。
内容的提问来源于stack exchange,提问作者Grappachu
相关产品推荐
相关产品推荐

