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

GitVersion 6.0.x master分支PreReleaseLabel为空,版本标签失效

问题:GitVersion 6.x 恢复master分支5.x版本的版本生成逻辑

升级至GitVersion 6.0.x后,master分支版本号生成不符合预期:期望master构建版本带-alpha标签,仅打标签的构建使用next-version字段的精确版本,但当前master分支输出的PreReleaseLabel为空,版本格式为6.4.0-48990,而非5.x时期的6.4.0-alpha.13161。

当前配置(gitversion.yml)

# current development version which is first version of next release branched away from master
next-version: 6.4.0

# configuration for all branches
tag-prefix: '[vV]?'
assembly-versioning-scheme: MajorMinorPatchTag
assembly-file-versioning-scheme: MajorMinorPatchTag
mode: ContinuousDelivery
commit-message-incrementing: Enabled

branches:
  master:
    label: '-alpha'
    regex: ^master$|^main$
    is-main-branch: true

  feature:
    mode: ContinuousDelivery
    regex: ^workitems?[/-](?<BranchName>.+)
    label: '--w.{BranchName}'
    source-branches: ['master']
    pre-release-weight: 0
    
  pull-request:
    regex: (pull|pull\-requests|pr)[/-]
    label: -pr
    source-branches: ['master']

  # Official product releases
  release:
    regex: releases/[Vv]
    label: beta
    # Increment patch version after a release
    increment: Patch
    source-branches: ['master']

当前master分支输出

{
  "AssemblySemFileVer": "6.4.0.48990",
  "AssemblySemVer": "6.4.0.48990",
  "BranchName": "master",
  "BuildMetaData": null,
  "CommitDate": "2024-11-05",
  "CommitsSinceVersionSource": 48990,
  "EscapedBranchName": "master",
  "FullBuildMetaData": "Branch.master.Sha.3edf09c0a1683a97b79b2380bXXXX",
  "FullSemVer": "6.4.0-48990",
  "InformationalVersion": "6.4.0-48990+Branch.master.Sha.3edf09c0a1683a97b79b2380b5XXX",
  "Major": 6,
  "MajorMinorPatch": "6.4.0",
  "Minor": 4,
  "Patch": 0,
  "PreReleaseLabel": "",
  "PreReleaseLabelWithDash": "",
  "PreReleaseNumber": 48990,
  "PreReleaseTag": "48990",
  "PreReleaseTagWithDash": "-48990",
  "SemVer": "6.4.0-48990",
  "Sha": "3edf09c0a1683a97b79b2380b5cdacXXXXXX",
  "ShortSha": "3edf09c",
  "UncommittedChanges": 1,
  "VersionSourceSha": "",
  "WeightedPreReleaseNumber": 103990
}

GitVersion 5.x正常输出

{
  "Major":6,
  "Minor":4,
  "Patch":0,
  "PreReleaseTag":"alpha.13161",
  "PreReleaseTagWithDash":"-alpha.13161",
  "PreReleaseLabel":"alpha",
  "PreReleaseNumber":13161,
  "WeightedPreReleaseNumber":68161,
  "BuildMetaData":"",
  "BuildMetaDataPadded":"",
  "FullBuildMetaData":"Branch.master.Sha.2acac930ea679651600c0ab55cXXXXXXX",
  "MajorMinorPatch":"6.4.0",
  "SemVer":"6.4.0-alpha.13161",
  "LegacySemVer":"6.4.0-alpha13161",
  "LegacySemVerPadded":"6.4.0-alpha0013161",
  "AssemblySemVer":"6.4.0.13161",
  "AssemblySemFileVer":"6.4.0.13161",
  "FullSemVer":"6.4.0-alpha.13161",
  "InformationalVersion":"6.4.0-alpha.13161+Branch.master.Sha.2acac930ea679651600c0ab55c5XXXXXXXX",
  "BranchName":"master",
  "Sha":"2acac930ea679651600c0ab55c53bXXXXXXXXXX",
  "ShortSha":"2acac93",
  "NuGetVersionV2":"6.4.0-alpha0013161",
  "NuGetVersion":"6.4.0-alpha0013161",
  "NuGetPreReleaseTagV2":"alpha13161",
  "NuGetPreReleaseTag":"alpha13161",
  "VersionSourceSha":"16f71543433b202773b49d6d5a7dbXXXXXXXXX",
  "CommitsSinceVersionSource":13161,
  "CommitsSinceVersionSourcePadded":"0013161",
  "CommitDate":"2024-10-24"
}

旧配置(GitVersion 5.x)相关部分

# current development version which is first version of next release branched away from master
next-version: 6.4.0

# configuration for all branches
assembly-versioning-scheme: MajorMinorPatchTag
assembly-file-versioning-scheme: MajorMinorPatchTag
mode: ContinuousDeployment
legacy-semver-padding: 7
build-metadata-padding: 7
commits-since-version-source-padding: 7
commit-message-incrementing: Disabled

branches:
  master:
    regex: ^master$|^main$
    tag: alpha

  feature:
    regex: workitems?[/-]
    tag: --w.{BranchName}
    source-branches: ['master']

解决方案:调整GitVersion 6.x配置以匹配5.x逻辑

GitVersion 6.x对分支模式和预发布标签的处理逻辑有变更,需调整以下配置项:

修改后的完整配置(gitversion.yml)

# current development version which is first version of next release branched away from master
next-version: 6.4.0

# configuration for all branches
tag-prefix: '[vV]?'
assembly-versioning-scheme: MajorMinorPatchTag
assembly-file-versioning-scheme: MajorMinorPatchTag
mode: ContinuousDeployment
legacy-semver-padding: 7
build-metadata-padding: 7
commits-since-version-source-padding: 7
commit-message-incrementing: Disabled

branches:
  master:
    label: alpha
    regex: ^master$|^main$
    is-main-branch: true
    increment: None

  feature:
    mode: ContinuousDeployment
    regex: ^workitems?[/-](?<BranchName>.+)
    label: 'w-{BranchName}'
    source-branches: ['master']
    pre-release-weight: 0
    
  pull-request:
    regex: (pull|pull\-requests|pr)[/-]
    label: pr
    source-branches: ['master']

  # Official product releases
  release:
    regex: releases/[Vv]
    label: beta
    increment: Patch
    source-branches: ['master']

关键修改点说明

  1. 全局模式切换为ContinuousDeployment:
    GitVersion 6.x中,ContinuousDelivery模式默认不会为主分支添加预发布标签,仅显示提交数;而ContinuousDeployment模式会自动生成带标签的预发布版本,和5.x行为一致。

  2. master分支配置调整:

    • 将label: '-alpha'改为label: alpha:6.x中label字段无需带前置短横线,GitVersion会自动添加短横线拼接预发布标签。
    • 添加increment: None:指定主分支不自动增量版本,仅使用next-version定义的版本号,对齐5.x逻辑。
  3. 恢复padding配置:
    添加legacy-semver-padding、build-metadata-padding、commits-since-version-source-padding,确保版本号中提交数的补零格式和5.x一致。

  4. 调整commit-message-incrementing为Disabled:
    和旧配置保持一致,避免提交消息中的增量指令触发版本号变更,仅依赖分支规则和next-version。

  5. feature分支label格式修正:
    将label: '--w.{BranchName}'改为label: 'w-{BranchName}',6.x中变量引用需用{BranchName},且无需重复短横线,GitVersion会自动处理拼接逻辑。

验证效果

修改后,master分支的版本输出将恢复为6.4.0-alpha.XXXXXX格式,PreReleaseLabel为alpha,PreReleaseTag为alpha.XXXXXX,和GitVersion 5.x的输出完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:13:15