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

如何配置GitVersion实现稳定主分支与预发布特性分支的补丁递增

问题分析

当前配置存在几个核心问题:

  1. ContinuousDelivery模式下,主分支无对应版本标签时会自动生成预发布后缀;
  2. 特性分支的正则表达式转义错误,导致无法正确捕获分支名生成预发布标签;
  3. 版本源识别混乱(仓库中存在多个重复/格式不一致的标签);
  4. 分支递增规则未明确强制补丁版本递增。

调整后的完整配置

assembly-versioning-scheme: MajorMinorPatch
assembly-file-versioning-scheme: MajorMinorPatch
mode: Mainline  # 适配GitLab Flow的合并工作流
increment: Patch  # 全局默认递增补丁版本
tag-prefix: 'v'  # 统一版本标签前缀,避免识别混乱
major-version-bump-message: \+semver:\s?(breaking|major)
minor-version-bump-message: \+semver:\s?(feature|minor)
patch-version-bump-message: \+semver:\s?(fix|patch)
no-bump-message: \+semver:\s?(none|skip)
commit-message-incrementing: Enabled

branches:
  main:
    regex: ^main$
    label: ''
    increment: Patch
    is-main-branch: true
    pre-release-label: ''  # 强制生成无预发布后缀的稳定版本
    track-merge-message: true
    pre-release-weight: 0

  feature:
    regex: ^feature[/-](?<BranchName>.+)$  # 修正正则,正确捕获分支名
    mode: ContinuousDelivery
    label: '{BranchName}'
    increment: Patch  # 明确特性分支递增补丁版本
    source-branches:
      - main
    pre-release-weight: 30000

  test:
    regex: ^test$
    mode: ContinuousDelivery
    label: test
    increment: Patch  # 测试分支同样递增补丁版本
    source-branches:
      - main
      - feature
    pre-release-weight: 35000

ignore:
  sha: []

关键修改说明

  1. 切换到Mainline模式
    该模式专门针对GitLab Flow这类基于合并的工作流,会自动跟踪合并到主分支的提交递增版本,避免无标签时生成预发布后缀。

  2. 全局强制补丁递增
    设置increment: Patch确保所有分支默认都递增补丁版本,直接满足“所有分支均递增补丁版本”的需求。

  3. 统一标签前缀
    仓库中存在1.89.0、v1.89.3等格式混乱的标签,设置tag-prefix: 'v'后,GitVersion只会识别v开头的有效版本标签,解决版本源识别歧义问题。

  4. 修正特性分支正则
    原配置中(?&lt;BranchName&gt;.+)的转义错误,改为(?<BranchName>.+)后可正确捕获特性分支名称(如first),生成-first格式的预发布标签。

  5. 主分支强制稳定版本
    添加pre-release-label: '',确保主分支无论是否有新提交,都不会生成预发布后缀,始终输出1.89.0、1.89.1这类稳定版本。

额外建议

清理仓库中重复/冲突的版本标签(如v1.89.2、v1.89.3这类与1.89.0冲突的标签),避免GitVersion在识别版本基准时出现异常。

验证步骤

  • 主分支运行dotnet-gitversion,应输出无预发布后缀的稳定版本(如1.89.1);
  • features/first分支运行,应输出1.89.1-first.0,后续提交递增为1.89.1-first.1;
  • 特性分支合并到主分支后,主分支版本自动递增为1.89.2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:19:59