Tag 命令
Tag 管理相关的命令详解。
📋 命令列表
| 命令 | 别名 | 说明 |
|---|---|---|
gw tags [prefix] | gw ts | 列出 tag |
gw tag [prefix] | gw t | 创建 tag |
gw tag:del | gw td | 删除 tag |
gw tag:update | gw tu | 修改 tag |
gw tag:clean | gw tc | 清理无效 tag |
📋 列出 Tag
基本用法
bash
# 列出所有 tag
gw tags
gw ts
# 按前缀过滤
gw ts v
gw ts release-输出示例
bash
$ gw ts
📋 所有 tags (按时间倒序):
v1.2.0 Release v1.2.0 2 days ago
v1.1.0 Release v1.1.0 1 week ago
v1.0.0 Initial release 2 weeks ago
共 3 个 tags🏷️ 创建 Tag
基本用法
bash
# 交互式创建
gw tag
gw t
# 指定前缀
gw t v
gw t release-创建流程
- 选择前缀(如果有多个)
- 选择版本类型
- 输入 tag 消息
- 确认创建
示例流程
bash
$ gw t
🏷️ 创建 tag
? 选择 tag 前缀:
❯ v (最新: v1.2.0)
release- (最新: release-1.0.0)
+ 使用新前缀
? 选择版本类型:
❯ patch → v1.2.1
minor → v1.3.0
major → v2.0.0
alpha → v1.2.1-alpha.1
beta → v1.2.1-beta.1
rc → v1.2.1-rc.1
? 输入 tag 消息: Release v1.2.1 - Bug fixes
✔ Tag 创建成功: v1.2.1
✔ Tag 已推送: v1.2.1🗑️ 删除 Tag
基本用法
bash
gw tag:delete
gw td删除流程
bash
$ gw td
🗑️ 删除 tag
? 选择要删除的 tag:
❯ v1.2.0 (2 days ago)
v1.1.0 (1 week ago)
v1.0.0 (2 weeks ago)
? 确认删除 tag v1.2.0?
❯ 是,删除本地和远程
仅删除本地
取消
✔ 本地 tag 已删除: v1.2.0
✔ 远程 tag 已删除: origin/v1.2.0✏️ 修改 Tag
基本用法
bash
gw tag:update
gw tu修改流程
bash
$ gw tu
✏️ 修改 tag
? 选择要修改的 tag:
❯ v1.2.0 Release v1.2.0 (2 days ago)
v1.1.0 Release v1.1.0 (1 week ago)
当前消息: Release v1.2.0
? 输入新的 tag 消息: Release v1.2.0 - Bug fixes and improvements
✔ Tag 消息已更新: v1.2.0
✔ 已推送到远程🧹 清理无效 Tag
基本用法
bash
gw tag:clean
gw tc什么是无效 Tag
无效 tag 是指那些不包含有效版本号的标签,通常是由于脚本错误或配置问题产生的,例如:
vnull- 版本号为 nullvundefined- 版本号为 undefinedv- 空版本号- 其他不符合版本规范的标签
清理流程
bash
$ gw tc
🧹 清理无效 tag
检测到以下无效 tag:
vnull
提交: abc1234 (2 days ago)
作者: John Doe
消息: Release vnull
vundefined
提交: def5678 (1 week ago)
作者: Jane Smith
消息: Release vundefined
? 是否删除这些无效 tag?
❯ 是,删除本地和远程
取消
✔ 本地 tag 已删除: vnull
✔ 远程 tag 已删除: origin/vnull
✔ 本地 tag 已删除: vundefined
✔ 远程 tag 已删除: origin/vundefined
✔ 已清理 2 个无效 tag安全性
- 只会删除明确不包含数字的标签
- 删除前会显示详细信息供确认
- 支持仅删除本地或同时删除远程
- 不会影响正常的版本标签
🔧 版本类型详解
标准版本
| 类型 | 说明 | 示例 |
|---|---|---|
patch | 补丁版本,Bug 修复 | 1.0.0 → 1.0.1 |
minor | 次版本,新功能 | 1.0.0 → 1.1.0 |
major | 主版本,破坏性变更 | 1.0.0 → 2.0.0 |
预发布版本
| 类型 | 说明 | 示例 |
|---|---|---|
alpha | 内部测试版 | 1.0.0 → 1.0.1-alpha.1 |
beta | 公开测试版 | 1.0.0 → 1.0.1-beta.1 |
rc | 发布候选版 | 1.0.0 → 1.0.1-rc.1 |
预发布版本升级
当前版本为预发布版本时,可以:
bash
# 当前: v1.2.1-beta.1
? 选择版本类型:
❯ pre → v1.2.1-beta.2 # 升级预发布版本
release → v1.2.1 # 转为正式版本
patch → v1.2.2 # 跳过当前,升级 patch
minor → v1.3.0 # 跳过当前,升级 minor
major → v2.0.0 # 跳过当前,升级 major🎯 前缀检测
工具会自动检测仓库中已有的 tag 前缀:
常见前缀
v- 最常用,如 v1.0.0release-- 如 release-1.0.0@scope/- 如 @myapp/1.0.0- 自定义前缀
初始化仓库
如果仓库没有任何 tag:
bash
$ gw t
🏷️ 创建 tag
当前仓库没有 tag,请输入前缀 (如 v): v
? 选择初始版本号:
❯ v0.0.1
v0.1.0
v1.0.0
自定义...📝 Tag 消息规范
推荐格式
Release v1.2.0
## 新功能
- 添加用户登录功能
- 支持多语言切换
## Bug 修复
- 修复数据加载失败问题
- 优化内存使用
## 其他
- 更新依赖版本
- 改进文档简洁格式
Release v1.2.0 - Bug fixes and improvements🔄 与其他命令配合
与 release 命令
bash
# 1. 更新版本号
gw release
# 2. 创建对应 tag
gw tag与 commit 命令
bash
# 1. 提交最后的更改
gw commit
# 2. 创建发布 tag
gw tag🚀 最佳实践
版本发布流程
- 完成开发 - 确保所有功能完成
- 运行测试 - 确保代码质量
- 更新文档 - 更新 CHANGELOG 等
- 提交更改 - 使用
gw c提交 - 创建 tag - 使用
gw t创建版本标签 - 发布版本 - 推送到生产环境
语义化版本
遵循 Semantic Versioning 规范:
- MAJOR - 不兼容的 API 修改
- MINOR - 向下兼容的功能性新增
- PATCH - 向下兼容的问题修正
预发布策略
1.0.0-alpha.1 → 内部测试
1.0.0-alpha.2 → 修复问题
1.0.0-beta.1 → 公开测试
1.0.0-beta.2 → 修复反馈
1.0.0-rc.1 → 发布候选
1.0.0 → 正式发布