标记提交后单个未标记提交GitVersion版本跳变如何解决?
问题原因
该异常是GitVersion的默认计算逻辑与预期不匹配导致的:
- 当前
develop分支配置为ContinuousDeployment模式,默认预发布号计算规则为「上一个有效版本标签的预发布号 + 距离版本源的提交数」,你预期是直接使用CommitsSinceVersionSource作为预发布号,因此出现41+42=83的结果 - 若你之前打的
0.1.0-alpha.41是轻量标签,GitVersion默认仅识别附注标签作为版本源,也会导致版本基点计算错误
解决方案
步骤1:修正标签类型(若使用了轻量标签)
删除旧的轻量标签,替换为GitVersion可识别的附注标签:
# 删除本地旧标签 git tag -d 0.1.0-alpha.41 # 同步删除远程标签 git push origin :refs/tags/0.1.0-alpha.41 # 新建附注标签 git tag -a 0.1.0-alpha.41 -m "release 0.1.0-alpha.41" # 推送新标签到远程 git push origin 0.1.0-alpha.41
步骤2:修改GitVersion.yaml配置
在develop分支的配置段新增两项配置,指定预发布号直接取提交数:
develop: mode: ContinuousDeployment tag: alpha increment: Minor prevent-increment-of-merged-branch-version: false track-merge-target: true regex: dev(elop)?(ment)?$ # 新增以下2行配置 pre-release-number: '{CommitsSinceVersionSource}' tag-pre-release-weight: 0
如果需要重置整个版本计数序列,在配置根节点新增next-version: 0.1.0即可。
步骤3:验证生效
执行以下命令确认配置和版本号输出符合预期:
# 查看加载的完整配置 gitversion /showconfig # 输出版本号确认结果 gitversion
内容的提问来源于stack exchange,提问作者Nikhil Agrawal
相关产品推荐
相关产品推荐

