@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.
- package/.github/workflows/deploy-docs.yml +68 -0
- package/.github/workflows/test.yml +24 -4
- package/.husky/pre-commit +17 -0
- package/README.md +72 -1066
- package/ROADMAP.md +275 -0
- package/dist/index.js +450 -99
- package/docs/.vitepress/cache/deps/_metadata.json +52 -0
- package/docs/.vitepress/cache/deps/chunk-2CLQ7TTZ.js +9719 -0
- package/docs/.vitepress/cache/deps/chunk-2CLQ7TTZ.js.map +7 -0
- package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js +12824 -0
- package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js.map +7 -0
- package/docs/.vitepress/cache/deps/package.json +3 -0
- package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4505 -0
- package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +583 -0
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +1352 -0
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +7 -0
- package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +1665 -0
- package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +7 -0
- package/docs/.vitepress/cache/deps/vitepress___minisearch.js +1813 -0
- package/docs/.vitepress/cache/deps/vitepress___minisearch.js.map +7 -0
- package/docs/.vitepress/cache/deps/vue.js +347 -0
- package/docs/.vitepress/cache/deps/vue.js.map +7 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/chunk-2CLQ7TTZ.js +9719 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/chunk-2CLQ7TTZ.js.map +7 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/chunk-LE5NDSFD.js +12824 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/chunk-LE5NDSFD.js.map +7 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/package.json +3 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vue_devtools-api.js +4505 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vue_devtools-api.js.map +7 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vueuse_core.js +583 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vueuse_core.js.map +7 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vueuse_integrations_useFocusTrap.js +1352 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vueuse_integrations_useFocusTrap.js.map +7 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___mark__js_src_vanilla__js.js +1665 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___mark__js_src_vanilla__js.js.map +7 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___minisearch.js +1813 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___minisearch.js.map +7 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/vue.js +347 -0
- package/docs/.vitepress/cache/deps_temp_44e2fb0f/vue.js.map +7 -0
- package/docs/.vitepress/config.ts +167 -0
- package/docs/.vitepress/theme/custom.css +39 -0
- package/docs/.vitepress/theme/index.ts +4 -0
- package/docs/README.md +82 -0
- package/docs/commands/branch.md +468 -0
- package/docs/commands/commit.md +554 -0
- package/docs/commands/config.md +346 -0
- package/docs/commands/index.md +312 -0
- package/docs/commands/interactive.md +384 -0
- package/docs/commands/release.md +300 -0
- package/docs/commands/stash.md +309 -0
- package/docs/commands/tag.md +278 -0
- package/docs/commands/update.md +347 -0
- package/docs/config/ai-config.md +160 -0
- package/docs/config/branch-config.md +133 -0
- package/docs/config/commit-config.md +185 -0
- package/docs/config/config-file.md +776 -0
- package/docs/config/examples.md +279 -0
- package/docs/config/index.md +478 -0
- package/docs/features/git-wrapped.md +199 -0
- package/docs/guide/ai-commit.md +576 -0
- package/docs/guide/basic-usage.md +522 -0
- package/docs/guide/best-practices.md +426 -0
- package/docs/guide/branch-management.md +712 -0
- package/docs/guide/getting-started.md +294 -0
- package/docs/guide/index.md +168 -0
- package/docs/guide/installation.md +449 -0
- package/docs/guide/release-management.md +744 -0
- package/docs/guide/stash-management.md +608 -0
- package/docs/guide/tag-management.md +614 -0
- package/docs/index.md +205 -0
- package/docs/public/favicon.svg +21 -0
- package/docs/public/hero-logo.svg +43 -0
- package/docs/public/logo.svg +20 -0
- package/package.json +12 -2
- package/scripts/publish.js +55 -8
- package/scripts/publish.sh +20 -2
- package/scripts/release.sh +81 -3
- package/scripts/update-test-count.js +55 -0
- package/src/ai-service.ts +107 -15
- package/src/commands/commit.ts +4 -0
- package/src/commands/init.ts +18 -0
- package/src/commands/log.ts +503 -0
- package/src/config.ts +1 -0
- package/src/index.ts +37 -13
- package/src/utils.ts +10 -0
- package/tests/ai-service.test.ts +237 -2
- package/tests/init.test.ts +582 -0
- package/tests/log.test.ts +106 -0
- package/tests/release.test.ts +333 -0
- package/tests/setup.ts +21 -0
- package/tests/stash.test.ts +376 -0
- package/tests/update.test.ts +402 -0
- package/vitest.config.ts +3 -0
- package/zjex-logo.svg +22 -0
- package/zjex-optimized.svg +34 -0
- package/zjex.svg +1 -0
- 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
|
+
- [ ] 没有未完成的功能
|