使用GitVersion构建发布Azure Pipeline时的版本冲突解决方案咨询
GitVersion 分支版本同步问题解决方案
核心配置思路
你的版本策略需要让develop分支始终对齐main的基线版本,通过自定义GitVersion.yml配置文件即可实现预期的版本迭代逻辑,无需依赖Octopus Deploy脚本(Octopus相关脚本仅用于版本号传递部署,不负责版本计算规则)。
具体配置步骤
1. 配置GitVersion.yml文件
在仓库根目录创建该文件,写入以下规则:
mode: Mainline branches: main: mode: ContinuousDeployment tag: '' increment: Major prevent-increment-of-merged-branch-version: true track-merge-target: true develop: mode: ContinuousDeployment tag: alpha increment: Minor prevent-increment-of-merged-branch-version: true track-merge-target: true source-branches: ['main'] ignore: sha: [] next-version: 0.1.0
2. 关键规则说明
mode: Mainline:采用主线模式,确保develop版本始终基于main的基线计算,避免分支版本独立增长。main分支规则:increment: Major:当develop合并到main时,自动升级主版本号(如0.1.0→1.0.0)。track-merge-target: true:跟踪合并来源的版本记录,确保main版本能正确继承develop的迭代进度。
develop分支规则:increment: Minor:PR合并到develop时,自动升级次版本号并追加alpha标签(如1.0.0→1.1.0-alpha.1,多次提交则生成1.1.0-alpha.2)。source-branches: ['main']:指定develop的上游基线为main,确保版本始终对齐main的最新发布版本。
3. 验证版本迭代流程
- 初始状态:
main和develop版本均为0.1.0。 - PR合并到
develop:版本升级为0.2.0-alpha.1,多次提交则递增alpha后缀。 - 合并
develop到main:main版本升级为1.0.0,develop自动对齐1.0.0基线,后续PR生成1.1.0-alpha.x。 - 再次合并
develop到main:main版本升级为2.0.0,develop基线同步为2.0.0,后续迭代生成2.1.0-alpha.x。
4. 修复当前版本脱节问题
若现有仓库已出现main与develop版本独立增长的情况:
- 在
main分支打基线标签:git tag 1.0.0(替换为你期望的基线版本号)。 - 切换到
develop分支,合并main:git merge main。 - 重新运行GitVersion,
develop将基于main的标签版本计算后续迭代版本。
内容的提问来源于stack exchange,提问作者milandjukic88
相关产品推荐
相关产品推荐

