@zjex/git-workflow 0.2.24 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/.github/workflows/deploy-docs.yml +68 -0
  2. package/.github/workflows/test.yml +24 -4
  3. package/.husky/pre-commit +17 -0
  4. package/README.md +72 -1066
  5. package/ROADMAP.md +275 -0
  6. package/dist/index.js +450 -99
  7. package/docs/.vitepress/cache/deps/_metadata.json +52 -0
  8. package/docs/.vitepress/cache/deps/chunk-2CLQ7TTZ.js +9719 -0
  9. package/docs/.vitepress/cache/deps/chunk-2CLQ7TTZ.js.map +7 -0
  10. package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js +12824 -0
  11. package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js.map +7 -0
  12. package/docs/.vitepress/cache/deps/package.json +3 -0
  13. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4505 -0
  14. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
  15. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +583 -0
  16. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
  17. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +1352 -0
  18. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +7 -0
  19. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +1665 -0
  20. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +7 -0
  21. package/docs/.vitepress/cache/deps/vitepress___minisearch.js +1813 -0
  22. package/docs/.vitepress/cache/deps/vitepress___minisearch.js.map +7 -0
  23. package/docs/.vitepress/cache/deps/vue.js +347 -0
  24. package/docs/.vitepress/cache/deps/vue.js.map +7 -0
  25. package/docs/.vitepress/cache/deps_temp_44e2fb0f/chunk-2CLQ7TTZ.js +9719 -0
  26. package/docs/.vitepress/cache/deps_temp_44e2fb0f/chunk-2CLQ7TTZ.js.map +7 -0
  27. package/docs/.vitepress/cache/deps_temp_44e2fb0f/chunk-LE5NDSFD.js +12824 -0
  28. package/docs/.vitepress/cache/deps_temp_44e2fb0f/chunk-LE5NDSFD.js.map +7 -0
  29. package/docs/.vitepress/cache/deps_temp_44e2fb0f/package.json +3 -0
  30. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vue_devtools-api.js +4505 -0
  31. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vue_devtools-api.js.map +7 -0
  32. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vueuse_core.js +583 -0
  33. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vueuse_core.js.map +7 -0
  34. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vueuse_integrations_useFocusTrap.js +1352 -0
  35. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vueuse_integrations_useFocusTrap.js.map +7 -0
  36. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___mark__js_src_vanilla__js.js +1665 -0
  37. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___mark__js_src_vanilla__js.js.map +7 -0
  38. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___minisearch.js +1813 -0
  39. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___minisearch.js.map +7 -0
  40. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vue.js +347 -0
  41. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vue.js.map +7 -0
  42. package/docs/.vitepress/config.ts +167 -0
  43. package/docs/.vitepress/theme/custom.css +39 -0
  44. package/docs/.vitepress/theme/index.ts +4 -0
  45. package/docs/README.md +82 -0
  46. package/docs/commands/branch.md +468 -0
  47. package/docs/commands/commit.md +554 -0
  48. package/docs/commands/config.md +346 -0
  49. package/docs/commands/index.md +312 -0
  50. package/docs/commands/interactive.md +384 -0
  51. package/docs/commands/release.md +300 -0
  52. package/docs/commands/stash.md +309 -0
  53. package/docs/commands/tag.md +278 -0
  54. package/docs/commands/update.md +347 -0
  55. package/docs/config/ai-config.md +160 -0
  56. package/docs/config/branch-config.md +133 -0
  57. package/docs/config/commit-config.md +185 -0
  58. package/docs/config/config-file.md +776 -0
  59. package/docs/config/examples.md +279 -0
  60. package/docs/config/index.md +478 -0
  61. package/docs/features/git-wrapped.md +199 -0
  62. package/docs/guide/ai-commit.md +576 -0
  63. package/docs/guide/basic-usage.md +522 -0
  64. package/docs/guide/best-practices.md +426 -0
  65. package/docs/guide/branch-management.md +712 -0
  66. package/docs/guide/getting-started.md +294 -0
  67. package/docs/guide/index.md +168 -0
  68. package/docs/guide/installation.md +449 -0
  69. package/docs/guide/release-management.md +744 -0
  70. package/docs/guide/stash-management.md +608 -0
  71. package/docs/guide/tag-management.md +614 -0
  72. package/docs/index.md +205 -0
  73. package/docs/public/favicon.svg +21 -0
  74. package/docs/public/hero-logo.svg +43 -0
  75. package/docs/public/logo.svg +20 -0
  76. package/package.json +12 -2
  77. package/scripts/publish.js +55 -8
  78. package/scripts/publish.sh +20 -2
  79. package/scripts/release.sh +81 -3
  80. package/scripts/update-test-count.js +55 -0
  81. package/src/ai-service.ts +107 -15
  82. package/src/commands/commit.ts +4 -0
  83. package/src/commands/init.ts +18 -0
  84. package/src/commands/log.ts +503 -0
  85. package/src/config.ts +1 -0
  86. package/src/index.ts +37 -13
  87. package/src/utils.ts +10 -0
  88. package/tests/ai-service.test.ts +237 -2
  89. package/tests/init.test.ts +582 -0
  90. package/tests/log.test.ts +106 -0
  91. package/tests/release.test.ts +333 -0
  92. package/tests/setup.ts +21 -0
  93. package/tests/stash.test.ts +376 -0
  94. package/tests/update.test.ts +402 -0
  95. package/vitest.config.ts +3 -0
  96. package/zjex-logo.svg +22 -0
  97. package/zjex-optimized.svg +34 -0
  98. package/zjex.svg +1 -0
  99. package/src/commands/help.ts +0 -76
@@ -0,0 +1,384 @@
1
+ # 交互式菜单
2
+
3
+ 交互式菜单是 Git Workflow 的核心界面,提供了直观、易用的操作方式,特别适合新手快速上手。
4
+
5
+ ## 🎯 启动主菜单
6
+
7
+ ### 基本用法
8
+
9
+ ```bash
10
+ gw
11
+ ```
12
+
13
+ 直接运行 `gw` 命令即可启动交互式主菜单。
14
+
15
+ ### 主菜单界面
16
+
17
+ ```
18
+ ███████╗ ██╗███████╗██╗ ██╗
19
+ ╚══███╔╝ ██║██╔════╝╚██╗██╔╝
20
+ ███╔╝ ██║█████╗ ╚███╔╝
21
+ ███╔╝ ██ ██║██╔══╝ ██╔██╗
22
+ ███████╗╚█████╔╝███████╗██╔╝ ██╗
23
+ ╚══════╝ ╚════╝ ╚══════╝╚═╝ ╚═╝
24
+
25
+ git-workflow v0.2.24
26
+
27
+ ? 选择操作:
28
+ [1] ✨ 创建 feature 分支 gw f
29
+ [2] 🐛 创建 hotfix 分支 gw h
30
+ [3] 🗑️ 删除分支 gw d
31
+ [4] 📝 提交代码 gw c
32
+ [5] 🏷️ 创建 tag gw t
33
+ [6] 🗑️ 删除 tag gw td
34
+ [7] ✏️ 修改 tag gw tu
35
+ [8] 📋 列出 tags gw ts
36
+ [9] 📦 发布版本 gw r
37
+ [a] 💾 管理 stash gw s
38
+ [b] ⚙️ 初始化配置 gw init
39
+ [0] ❓ 帮助
40
+ [q] 退出
41
+ ```
42
+
43
+ ## 🎨 界面特性
44
+
45
+ ### ASCII Art Logo
46
+
47
+ 主菜单顶部显示精美的 ASCII Art Logo:
48
+ - 使用绿色高亮显示
49
+ - 展示项目品牌标识
50
+ - 包含版本号信息
51
+
52
+ ### 功能分类
53
+
54
+ 菜单项按功能类型进行分组:
55
+
56
+ #### 分支管理
57
+ - `[1]` **创建 feature 分支** - 日常功能开发
58
+ - `[2]` **创建 hotfix 分支** - 紧急问题修复
59
+ - `[3]` **删除分支** - 清理无用分支
60
+
61
+ #### 代码管理
62
+ - `[4]` **提交代码** - AI 智能提交或手动提交
63
+ - `[a]` **管理 stash** - 可视化 stash 管理
64
+
65
+ #### 版本管理
66
+ - `[5]` **创建 tag** - 创建版本标签
67
+ - `[6]` **删除 tag** - 删除版本标签
68
+ - `[7]` **修改 tag** - 修改标签信息
69
+ - `[8]` **列出 tags** - 查看所有标签
70
+ - `[9]` **发布版本** - 更新 package.json 版本
71
+
72
+ #### 工具管理
73
+ - `[b]` **初始化配置** - 创建配置文件
74
+ - `[0]` **帮助** - 查看帮助信息
75
+ - `[q]` **退出** - 退出程序
76
+
77
+ ### 快捷键设计
78
+
79
+ 每个功能都有对应的快捷键:
80
+ - **数字键** - 主要功能(1-9)
81
+ - **字母键** - 辅助功能(a, b)
82
+ - **特殊键** - 系统功能(0, q)
83
+
84
+ ### 命令提示
85
+
86
+ 每个菜单项都显示对应的命令行快捷方式:
87
+ ```
88
+ [1] ✨ 创建 feature 分支 gw f
89
+ ```
90
+ - 左侧:快捷键和功能描述
91
+ - 右侧:对应的命令行命令
92
+
93
+ ## ⌨️ 操作方式
94
+
95
+ ### 键盘操作
96
+
97
+ | 按键 | 功能 |
98
+ | ---------- | ------------------------ |
99
+ | 数字键 1-9 | 选择对应的主要功能 |
100
+ | 字母键 a-z | 选择对应的辅助功能 |
101
+ | 方向键 ↑↓ | 上下移动选择 |
102
+ | 回车键 | 确认选择 |
103
+ | q 键 | 退出程序 |
104
+ | Ctrl+C | 优雅退出 |
105
+
106
+ ### 选择方式
107
+
108
+ #### 直接按键选择(推荐)
109
+
110
+ ```bash
111
+ gw
112
+ # 直接按数字键 1,立即执行创建 feature 分支
113
+ # 直接按字母键 a,立即执行管理 stash
114
+ ```
115
+
116
+ #### 方向键选择
117
+
118
+ ```bash
119
+ gw
120
+ # 使用 ↑↓ 方向键移动光标
121
+ # 按回车键确认选择
122
+ ```
123
+
124
+ ### 退出方式
125
+
126
+ - **q 键** - 正常退出
127
+ - **Ctrl+C** - 强制退出(优雅处理)
128
+ - **选择退出选项** - 通过菜单选择退出
129
+
130
+ ## 🔄 自动更新检查
131
+
132
+ ### 版本检查
133
+
134
+ 主菜单启动时会自动检查更新:
135
+
136
+ ```bash
137
+ gw
138
+ # 检查更新中...
139
+ #
140
+ # 🎉 发现新版本!
141
+ # 当前版本: v0.2.24
142
+ # 最新版本: v0.2.25
143
+ #
144
+ # 是否现在更新? (y/N)
145
+ ```
146
+
147
+ ### 更新提示
148
+
149
+ - **非阻塞检查** - 不影响正常使用
150
+ - **智能提醒** - 只在有新版本时提示
151
+ - **可选更新** - 用户可以选择是否更新
152
+
153
+ ## 🎯 使用场景
154
+
155
+ ### 场景一:新手入门
156
+
157
+ ```bash
158
+ # 第一次使用,不熟悉命令
159
+ gw
160
+
161
+ # 通过菜单了解所有功能
162
+ # 选择需要的操作
163
+ # 跟随交互式引导完成操作
164
+ ```
165
+
166
+ ### 场景二:功能探索
167
+
168
+ ```bash
169
+ # 想了解工具的所有功能
170
+ gw
171
+
172
+ # 浏览完整的功能列表
173
+ # 尝试不同的功能
174
+ # 学习对应的命令行快捷方式
175
+ ```
176
+
177
+ ### 场景三:偶尔使用
178
+
179
+ ```bash
180
+ # 不经常使用,忘记了具体命令
181
+ gw
182
+
183
+ # 通过菜单快速找到需要的功能
184
+ # 无需记忆复杂的命令参数
185
+ ```
186
+
187
+ ### 场景四:团队演示
188
+
189
+ ```bash
190
+ # 向团队成员演示工具功能
191
+ gw
192
+
193
+ # 清晰的界面展示所有功能
194
+ # 直观的操作流程
195
+ # 专业的视觉效果
196
+ ```
197
+
198
+ ## 🔧 自定义配置
199
+
200
+ ### 禁用更新检查
201
+
202
+ 如果不希望在交互式模式下检查更新:
203
+
204
+ ```json
205
+ {
206
+ "checkUpdates": false
207
+ }
208
+ ```
209
+
210
+ ### 自定义启动消息
211
+
212
+ ```json
213
+ {
214
+ "welcomeMessage": "欢迎使用 Git Workflow!"
215
+ }
216
+ ```
217
+
218
+ ### 菜单项自定义
219
+
220
+ ```json
221
+ {
222
+ "menuItems": {
223
+ "feature": {
224
+ "enabled": true,
225
+ "label": "创建功能分支",
226
+ "shortcut": "f"
227
+ },
228
+ "hotfix": {
229
+ "enabled": true,
230
+ "label": "创建修复分支",
231
+ "shortcut": "h"
232
+ }
233
+ }
234
+ }
235
+ ```
236
+
237
+ ## 🎨 主题和样式
238
+
239
+ ### 颜色方案
240
+
241
+ 主菜单使用统一的颜色方案:
242
+
243
+ - **绿色** - Logo 和成功信息
244
+ - **黄色** - 版本号和重要提示
245
+ - **蓝色** - 命令和链接
246
+ - **灰色** - 辅助信息
247
+ - **白色** - 主要文本
248
+
249
+ ### 图标系统
250
+
251
+ 每个功能都有对应的 emoji 图标:
252
+
253
+ - ✨ **feature** - 新功能,闪亮的星星
254
+ - 🐛 **hotfix** - Bug 修复,小虫子
255
+ - 🗑️ **delete** - 删除操作,垃圾桶
256
+ - 📝 **commit** - 提交代码,备忘录
257
+ - 🏷️ **tag** - 版本标签,标签
258
+ - 📦 **release** - 版本发布,包裹
259
+ - 💾 **stash** - 代码暂存,软盘
260
+ - ⚙️ **config** - 配置管理,齿轮
261
+
262
+ ### 响应式布局
263
+
264
+ 主菜单会根据终端宽度自动调整:
265
+
266
+ - **宽屏** - 显示完整的 Logo 和描述
267
+ - **窄屏** - 简化显示,保持可读性
268
+ - **最小宽度** - 确保基本功能可用
269
+
270
+ ## 🚀 性能优化
271
+
272
+ ### 快速启动
273
+
274
+ - **延迟加载** - 只在需要时加载功能模块
275
+ - **缓存机制** - 缓存常用信息
276
+ - **异步检查** - 更新检查不阻塞界面
277
+
278
+ ### 内存优化
279
+
280
+ - **按需加载** - 避免加载不必要的模块
281
+ - **及时清理** - 操作完成后清理资源
282
+ - **轻量依赖** - 使用轻量级的依赖库
283
+
284
+ ## 🔍 调试和故障排除
285
+
286
+ ### 调试模式
287
+
288
+ 启用详细日志:
289
+
290
+ ```bash
291
+ DEBUG=gw:menu gw
292
+ ```
293
+
294
+ ### 常见问题
295
+
296
+ #### 问题一:菜单显示异常
297
+
298
+ ```bash
299
+ # 终端不支持 Unicode 字符
300
+ # 解决方案:使用支持 Unicode 的终端
301
+ ```
302
+
303
+ #### 问题二:颜色显示异常
304
+
305
+ ```bash
306
+ # 终端不支持颜色
307
+ # 解决方案:使用支持 ANSI 颜色的终端
308
+ ```
309
+
310
+ #### 问题三:按键无响应
311
+
312
+ ```bash
313
+ # 终端输入模式问题
314
+ # 解决方案:重新启动终端或使用方向键选择
315
+ ```
316
+
317
+ ## 📚 相关功能
318
+
319
+ ### 命令行模式
320
+
321
+ 对于熟练用户,可以直接使用命令行:
322
+
323
+ ```bash
324
+ # 直接执行功能,跳过菜单
325
+ gw f # 创建 feature 分支
326
+ gw c # 提交代码
327
+ gw t # 创建 tag
328
+ ```
329
+
330
+ ### 帮助系统
331
+
332
+ ```bash
333
+ # 查看帮助信息
334
+ gw --help
335
+ gw -h
336
+
337
+ # 或在菜单中选择帮助选项
338
+ gw
339
+ # 选择 [0] 帮助
340
+ ```
341
+
342
+ ### 版本信息
343
+
344
+ ```bash
345
+ # 查看版本号
346
+ gw --version
347
+ gw -v
348
+ ```
349
+
350
+ ## 💡 使用技巧
351
+
352
+ ### 技巧一:快速操作
353
+
354
+ ```bash
355
+ # 启动后直接按对应数字键
356
+ gw
357
+ 1 # 立即创建 feature 分支
358
+ ```
359
+
360
+ ### 技巧二:学习命令
361
+
362
+ ```bash
363
+ # 通过菜单学习对应的命令行快捷方式
364
+ # 熟悉后可以直接使用命令行模式
365
+ ```
366
+
367
+ ### 技巧三:功能探索
368
+
369
+ ```bash
370
+ # 定期浏览主菜单,发现新功能
371
+ # 尝试不同的操作组合
372
+ ```
373
+
374
+ ### 技巧四:团队培训
375
+
376
+ ```bash
377
+ # 使用交互式菜单进行团队培训
378
+ # 直观展示所有功能
379
+ # 降低学习成本
380
+ ```
381
+
382
+ ---
383
+
384
+ 交互式菜单是 Git Workflow 的门面,为用户提供了友好、直观的操作界面。无论是新手入门还是功能探索,都能通过主菜单快速找到需要的功能。
@@ -0,0 +1,300 @@
1
+ # Release 命令
2
+
3
+ 版本发布相关的命令详解。
4
+
5
+ ## 📋 命令概览
6
+
7
+ | 命令 | 别名 | 说明 |
8
+ |------|------|------|
9
+ | `gw release` | `gw r` | 交互式版本发布 |
10
+
11
+ ## 📦 版本发布
12
+
13
+ ### 基本用法
14
+
15
+ ```bash
16
+ gw release
17
+ gw r
18
+ ```
19
+
20
+ ### 发布流程
21
+
22
+ ```bash
23
+ $ gw r
24
+ 📦 版本发布
25
+
26
+ 当前版本: 0.2.24
27
+ package.json: /path/to/your/project/package.json
28
+
29
+ ? 选择新版本:
30
+ ❯ patch → 0.2.25
31
+ minor → 0.3.0
32
+ major → 1.0.0
33
+ alpha → 0.2.25-alpha.1
34
+ beta → 0.2.25-beta.1
35
+ rc → 0.2.25-rc.1
36
+ 自定义...
37
+
38
+ ✔ 版本号已更新: 0.2.24 → 0.2.25
39
+ ✔ package.json 已更新
40
+ ```
41
+
42
+ ## 🔢 版本类型
43
+
44
+ ### 标准版本
45
+
46
+ | 类型 | 说明 | 示例 |
47
+ |------|------|------|
48
+ | `patch` | 补丁版本,Bug 修复 | 0.2.24 → 0.2.25 |
49
+ | `minor` | 次版本,新功能 | 0.2.24 → 0.3.0 |
50
+ | `major` | 主版本,破坏性变更 | 0.2.24 → 1.0.0 |
51
+
52
+ ### 预发布版本
53
+
54
+ | 类型 | 说明 | 示例 |
55
+ |------|------|------|
56
+ | `alpha` | 内部测试版 | 0.2.24 → 0.2.25-alpha.1 |
57
+ | `beta` | 公开测试版 | 0.2.24 → 0.2.25-beta.1 |
58
+ | `rc` | 发布候选版 | 0.2.24 → 0.2.25-rc.1 |
59
+
60
+ ### 自定义版本
61
+
62
+ ```bash
63
+ ? 选择新版本: 自定义...
64
+
65
+ ? 输入自定义版本号: 2.0.0-beta.1
66
+
67
+ ✔ 版本号已更新: 0.2.24 → 2.0.0-beta.1
68
+ ```
69
+
70
+ ## 📝 package.json 更新
71
+
72
+ 工具会自动更新 `package.json` 中的版本号:
73
+
74
+ ### 更新前
75
+
76
+ ```json
77
+ {
78
+ "name": "@zjex/git-workflow",
79
+ "version": "0.2.24",
80
+ "description": "Git workflow CLI tool"
81
+ }
82
+ ```
83
+
84
+ ### 更新后
85
+
86
+ ```json
87
+ {
88
+ "name": "@zjex/git-workflow",
89
+ "version": "0.2.25",
90
+ "description": "Git workflow CLI tool"
91
+ }
92
+ ```
93
+
94
+ ## 🔄 预发布版本处理
95
+
96
+ ### 当前为预发布版本
97
+
98
+ 如果当前版本是预发布版本,会提供额外选项:
99
+
100
+ ```bash
101
+ 当前版本: 1.0.0-beta.1
102
+
103
+ ? 选择新版本:
104
+ ❯ pre → 1.0.0-beta.2 # 升级预发布版本
105
+ release → 1.0.0 # 转为正式版本
106
+ patch → 1.0.1 # 跳过当前,升级 patch
107
+ minor → 1.1.0 # 跳过当前,升级 minor
108
+ major → 2.0.0 # 跳过当前,升级 major
109
+ alpha → 1.0.1-alpha.1 # 新的 alpha 版本
110
+ beta → 1.0.1-beta.1 # 新的 beta 版本
111
+ rc → 1.0.1-rc.1 # 新的 rc 版本
112
+ ```
113
+
114
+ ## 🎯 使用场景
115
+
116
+ ### 日常开发
117
+
118
+ ```bash
119
+ # 修复 bug 后发布补丁版本
120
+ gw r
121
+ # 选择 patch → 1.0.0 → 1.0.1
122
+ ```
123
+
124
+ ### 功能发布
125
+
126
+ ```bash
127
+ # 添加新功能后发布次版本
128
+ gw r
129
+ # 选择 minor → 1.0.0 → 1.1.0
130
+ ```
131
+
132
+ ### 重大更新
133
+
134
+ ```bash
135
+ # 破坏性变更后发布主版本
136
+ gw r
137
+ # 选择 major → 1.0.0 → 2.0.0
138
+ ```
139
+
140
+ ### 测试版本
141
+
142
+ ```bash
143
+ # 发布内部测试版
144
+ gw r
145
+ # 选择 alpha → 1.0.0 → 1.0.1-alpha.1
146
+
147
+ # 发布公开测试版
148
+ gw r
149
+ # 选择 beta → 1.0.1-alpha.1 → 1.0.1-beta.1
150
+
151
+ # 发布候选版本
152
+ gw r
153
+ # 选择 rc → 1.0.1-beta.1 → 1.0.1-rc.1
154
+
155
+ # 发布正式版本
156
+ gw r
157
+ # 选择 release → 1.0.1-rc.1 → 1.0.1
158
+ ```
159
+
160
+ ## 🔗 与其他命令配合
161
+
162
+ ### 完整发布流程
163
+
164
+ ```bash
165
+ # 1. 完成开发并提交
166
+ gw c
167
+
168
+ # 2. 更新版本号
169
+ gw r
170
+
171
+ # 3. 创建版本标签
172
+ gw t
173
+
174
+ # 4. 推送到远程
175
+ git push origin main --tags
176
+ ```
177
+
178
+ ### 自动化脚本
179
+
180
+ 可以结合其他工具创建自动化发布脚本:
181
+
182
+ ```bash
183
+ #!/bin/bash
184
+ # release.sh
185
+
186
+ # 运行测试
187
+ npm test
188
+
189
+ # 构建项目
190
+ npm run build
191
+
192
+ # 更新版本
193
+ gw release
194
+
195
+ # 创建 tag
196
+ gw tag
197
+
198
+ # 推送更改
199
+ git push origin main --tags
200
+
201
+ # 发布到 npm
202
+ npm publish
203
+ ```
204
+
205
+ ## 📋 版本规范
206
+
207
+ ### 语义化版本
208
+
209
+ 遵循 [Semantic Versioning](https://semver.org/lang/zh-CN/) 规范:
210
+
211
+ ```
212
+ 主版本号.次版本号.修订号[-预发布版本号]
213
+
214
+ 例如:
215
+ 1.0.0 - 正式版本
216
+ 1.0.1 - 补丁版本
217
+ 1.1.0 - 次版本
218
+ 2.0.0 - 主版本
219
+ 1.0.0-alpha.1 - 预发布版本
220
+ ```
221
+
222
+ ### 版本号含义
223
+
224
+ **主版本号(MAJOR)**:
225
+ - 不兼容的 API 修改
226
+ - 重大架构变更
227
+ - 破坏性变更
228
+
229
+ **次版本号(MINOR)**:
230
+ - 向下兼容的功能性新增
231
+ - 新特性添加
232
+ - 功能增强
233
+
234
+ **修订号(PATCH)**:
235
+ - 向下兼容的问题修正
236
+ - Bug 修复
237
+ - 安全补丁
238
+
239
+ ### 预发布版本
240
+
241
+ **Alpha 版本**:
242
+ - 内部测试版本
243
+ - 功能不完整
244
+ - 可能有严重 bug
245
+
246
+ **Beta 版本**:
247
+ - 公开测试版本
248
+ - 功能基本完整
249
+ - 可能有小 bug
250
+
251
+ **RC 版本**:
252
+ - 发布候选版本
253
+ - 功能完整
254
+ - 准备正式发布
255
+
256
+ ## 🚀 最佳实践
257
+
258
+ ### 版本发布策略
259
+
260
+ 1. **开发阶段** - 使用 alpha 版本
261
+ 2. **测试阶段** - 使用 beta 版本
262
+ 3. **预发布** - 使用 rc 版本
263
+ 4. **正式发布** - 使用标准版本
264
+
265
+ ### 版本号管理
266
+
267
+ 1. **保持一致** - 所有相关文件版本号同步
268
+ 2. **遵循规范** - 严格按照语义化版本规范
269
+ 3. **记录变更** - 维护 CHANGELOG 文件
270
+ 4. **标签同步** - 版本发布后创建对应 tag
271
+
272
+ ### 团队协作
273
+
274
+ 1. **统一流程** - 团队使用相同的发布流程
275
+ 2. **权限控制** - 限制版本发布权限
276
+ 3. **自动化** - 使用 CI/CD 自动化发布
277
+ 4. **通知机制** - 版本发布后及时通知团队
278
+
279
+ ### 错误处理
280
+
281
+ 如果版本更新出错:
282
+
283
+ ```bash
284
+ # 手动回滚 package.json
285
+ git checkout HEAD -- package.json
286
+
287
+ # 或者使用 git reset
288
+ git reset --hard HEAD~1
289
+ ```
290
+
291
+ ### 发布检查清单
292
+
293
+ 发布前确认:
294
+
295
+ - [ ] 所有测试通过
296
+ - [ ] 代码已提交
297
+ - [ ] 文档已更新
298
+ - [ ] CHANGELOG 已更新
299
+ - [ ] 版本号符合规范
300
+ - [ ] 没有未完成的功能