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

如何用Nerdbank仅在非公共发布分支的beta标签中使用height管理版本?

基于分支策略的无频繁修改版本管理方案

核心思路

通过构建时动态生成版本号,让version.json仅存储纯基础版本号(如1.1),无需在特性分支构建时频繁修改版本文件——版本后缀由当前分支和构建编号自动决定。

具体实现步骤

1. 版本文件配置

version.json只保留基础版本,不包含beta标识:

{
  "version": "1.1"
}

2. 构建脚本逻辑

在CI/CD构建流程中添加版本生成逻辑,以Shell脚本为例:

# 读取version.json中的基础版本
BASE_VERSION=$(jq -r '.version' version.json)

# 获取当前分支名
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)

# 获取构建编号(根据CI工具调整,示例用GitHub Actions变量)
BUILD_NUMBER=${{ github.run_number }}
# 格式化为4位补零数字(如0001、0002)
FORMATTED_BUILD=$(printf "%04d" $BUILD_NUMBER)

# 根据分支生成最终版本
if [[ $CURRENT_BRANCH == master || $CURRENT_BRANCH == main ]]; then
  FINAL_VERSION=$BASE_VERSION
else
  # 匹配特性分支(可根据团队分支规则调整,比如feature/*、bugfix/*)
  if [[ $CURRENT_BRANCH == feature/* || $CURRENT_BRANCH == bugfix/* ]]; then
    FINAL_VERSION="${BASE_VERSION}-beta${FORMATTED_BUILD}"
  fi
fi

# 将最终版本传入包构建命令(示例:npm 版本设置)
npm version $FINAL_VERSION --no-git-tag-version

3. 分支工作流配合

  • 启动新特性:创建特性分支(如feature/payment-module),仅修改一次version.json,将基础版本升级到目标正式版本(比如从1.0改为1.1),提交该修改到特性分支。
  • 特性分支构建:每次触发CI构建时,自动生成带beta后缀的版本(如1.1-beta0001、1.1-beta0002),全程无需修改版本文件。
  • 合并到正式分支:特性分支合并到master/main后,CI检测到正式分支,直接使用version.json中的基础版本生成正式包(如1.1)。

关键细节

  • 构建编号需保证在特性分支内递增:不同CI工具的构建编号变量不同,GitLab用CI_PIPELINE_IID,Jenkins用BUILD_NUMBER,按需替换即可。
  • 分支匹配规则可自定义:根据团队分支命名规范调整判断逻辑,确保只有特性分支才生成beta版本。
  • 避免版本冲突:特性分支的版本修改仅在启动时做,后续构建不碰version.json,合并到master时不会出现版本文件冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 08:47:18