GitVersion.yml配置解读及去掉beta后缀生成纯数字版本号咨询
1. GitVersion.yml配置含义与运行逻辑
这份配置是GitVersion工具的分支版本生成规则,核心逻辑是匹配当前代码所在分支的名称,调用对应分支的配置规则生成语义化版本号,各通用字段含义如下:
regex:分支名称匹配正则,命中对应规则就生效mode:版本生成模式,ContinuousDelivery适合手动发布场景,ContinuousDeployment适合每次提交自动发布场景tag:预发布版本的后缀,空值则生成纯数字版本号increment:版本号递增规则,Patch是递增补丁位(x.y.z的z)、Minor是递增次版本位(x.y.z的y)、Inherit是继承父分支的递增规则is-release-branch:标记是否为正式发布分支prevent-increment-of-merged-branch-version:合并分支后是否禁止重复递增版本号
各分支规则具体作用:
- main分支:匹配
master或main分支,无预发布后缀,每次合并代码自动递增补丁版本号,合并后不会重复累加版本 - release分支:匹配
release/、releases-这类前缀的分支,默认预发布后缀为beta,自动递增补丁版本号,标记为正式发布分支 - feature分支:匹配
feature/前缀的功能开发分支,用分支名作为预发布后缀,递增规则继承自上游分支 - pull-request分支:匹配PR/MR相关的临时分支,预发布后缀为
PullRequest,会自动提取PR编号拼接到版本号中 - hotfix分支:匹配
hotfix/、hotfixes/前缀的热修复分支,默认预发布后缀为beta,自动递增补丁版本号 - support分支:匹配
support/前缀的长期支持分支,无预发布后缀,每次合并递增补丁版本号 - develop分支:匹配
dev、develop前缀的开发分支,预发布后缀为unstable,每次提交自动递增次版本号,会自动跟踪release分支的版本变动
2. 移除beta后缀输出纯数字版本号的修改方案
当前版本号带beta后缀,是因为你的代码运行在release/*或者hotfix/*分支下,这两个分支的tag字段配置为beta即预发布后缀,根据你的需求有两种处理方式:
方案1:仅在正式发布场景输出纯数字版本(无需改配置)
你当前配置的main分支本身就是无预发布后缀的,只要把代码合并到main分支之后再生成版本号,天然就是1.1.2、1.1.3这类纯数字格式,符合语义化版本的常规发布逻辑。
方案2:直接修改配置移除所有beta后缀
如果需要在release、hotfix分支上也直接生成纯数字版本号,只需将这两个分支下的tag: beta修改为tag: ''即可,修改后的对应配置片段如下:
branches: release: regex: ^releases?[/-] mode: ContinuousDelivery tag: '' # 原配置为beta,修改为空字符串 increment: Patch prevent-increment-of-merged-branch-version: true track-merge-target: false tracks-release-branches: false is-release-branch: true pre-release-weight: 1000 hotfix: regex: ^hotfix(es)?[/-] mode: ContinuousDelivery tag: '' # 原配置为beta,修改为空字符串 increment: Patch prevent-increment-of-merged-branch-version: false track-merge-target: false tracks-release-branches: false is-release-branch: false
如果需要所有分支都输出纯数字版本号,同步将feature分支的tag: useBranchName、pull-request分支的tag: PullRequest、develop分支的tag: unstable全部修改为tag: ''即可。
内容的提问来源于stack exchange,提问作者sagar kharade
相关产品推荐
相关产品推荐

