auto-gen-tag

auto-gen-tag 是一个创建 Git 标签 的工具,用于简化发版操作流程。它通过识别最近的 Git 标签,并根据配置规则智能递增版本号,从而生成新的标签。
📦 安装
npm i -g auto-gen-tag
🚀 快速开始
基本使用
无需配置,直接运行:
gt
这将使用默认规则(v${major}.${minor}.${patch})找到最新标签并递增补丁版本号。
命令语法
gt [配置模式] [版本类型]
- 配置模式:对应配置文件中
tagPattern 的键名(如 default、test)
- 版本类型:指定要递增的版本部分(
major、minor、patch)
示例
gt
gt test
gt prod minor
gt daily
gt simple
gt list -n 10
gt list -p "test"
gt list -v
gt rm test-0.1.3
gt rm
三段式版本号的 minor 和 patch 最大为 99,继续递增时会自动向前进位:
0.2.99 -> 0.3.0
0.13.99 -> 0.14.0
0.99.99 -> 1.0.0
major 不设上限,例如 234.3.2 是有效版本号。
配置文件
在项目根目录创建 .gentagrc 或 .gentagrc.json 文件:
{
"tagPattern": {
"default": "v${major}.${minor}.${patch}",
"test": "test-${major}.${minor}.${patch}",
"prod": "release-${major}.${minor}.${patch}",
"daily": "v${YYYYMMDD}",
"simple": "v${n}"
},
"autoPush": true
}
环境变量
也可以通过环境变量配置:
export GENTAG_PATTERN="v${major}.${minor}.${patch}"
export GENTAG_INITIAL="v0.1.0"
export GENTAG_AUTO_PUSH=false
其他命令选项
gt list
用于查看最近创建的标签
gt list [选项]
选项:
-n, --number <n>: 显示最近 n 个标签(默认:10)
-p, --pattern <pattern>: 按指定模式过滤标签
-v, --verbose: 显示详细信息,包括提交信息和日期
gt rm
用于删除本地和远程的 Git 标签
gt rm [标签名称]
- 如果提供
标签名称,则删除指定的标签
- 如果不提供参数,则自动删除最近创建的标签
示例:
gt rm test-0.1.3
gt rm
该命令将:
- 删除本地标签
- 若配置文件中
autoPush 为 true,则同时删除远程标签
💡 最佳实践
- CI/CD 集成:在构建流程中添加
gt 命令自动生成发布标签
- 环境分离:为测试和生产环境使用不同的标签前缀
- 版本策略:制定清晰的版本递增策略,何时递增主版本、次版本和补丁版本
Windows 系统使用说明
如果遇到类似以下错误:
gt : 无法加载文件,因为在此系统上禁止运行脚本。
有两种解决方法:
-
临时解决方案:使用 CMD 命令行(而非 PowerShell)运行 gt 命令
-
永久解决方案:以管理员身份运行 PowerShell,执行以下命令放宽执行策略:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
📝 版本历史
- 1.0.4: 兼容 Windows
- 1.0.3: 修复远程标签删除问题
- 1.0.2: 支持删除 tag
- 1.0.0: 初始版本