@zjex/git-workflow 0.2.24 → 0.3.0

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 (92) hide show
  1. package/.github/workflows/deploy-docs.yml +68 -0
  2. package/.github/workflows/test.yml +24 -4
  3. package/.husky/pre-commit +14 -0
  4. package/README.md +72 -1066
  5. package/dist/index.js +103 -13
  6. package/docs/.vitepress/cache/deps/_metadata.json +52 -0
  7. package/docs/.vitepress/cache/deps/chunk-2CLQ7TTZ.js +9719 -0
  8. package/docs/.vitepress/cache/deps/chunk-2CLQ7TTZ.js.map +7 -0
  9. package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js +12824 -0
  10. package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js.map +7 -0
  11. package/docs/.vitepress/cache/deps/package.json +3 -0
  12. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4505 -0
  13. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
  14. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +583 -0
  15. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
  16. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +1352 -0
  17. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +7 -0
  18. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +1665 -0
  19. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +7 -0
  20. package/docs/.vitepress/cache/deps/vitepress___minisearch.js +1813 -0
  21. package/docs/.vitepress/cache/deps/vitepress___minisearch.js.map +7 -0
  22. package/docs/.vitepress/cache/deps/vue.js +347 -0
  23. package/docs/.vitepress/cache/deps/vue.js.map +7 -0
  24. package/docs/.vitepress/cache/deps_temp_44e2fb0f/chunk-2CLQ7TTZ.js +9719 -0
  25. package/docs/.vitepress/cache/deps_temp_44e2fb0f/chunk-2CLQ7TTZ.js.map +7 -0
  26. package/docs/.vitepress/cache/deps_temp_44e2fb0f/chunk-LE5NDSFD.js +12824 -0
  27. package/docs/.vitepress/cache/deps_temp_44e2fb0f/chunk-LE5NDSFD.js.map +7 -0
  28. package/docs/.vitepress/cache/deps_temp_44e2fb0f/package.json +3 -0
  29. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vue_devtools-api.js +4505 -0
  30. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vue_devtools-api.js.map +7 -0
  31. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vueuse_core.js +583 -0
  32. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vueuse_core.js.map +7 -0
  33. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vueuse_integrations_useFocusTrap.js +1352 -0
  34. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___@vueuse_integrations_useFocusTrap.js.map +7 -0
  35. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___mark__js_src_vanilla__js.js +1665 -0
  36. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___mark__js_src_vanilla__js.js.map +7 -0
  37. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___minisearch.js +1813 -0
  38. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vitepress___minisearch.js.map +7 -0
  39. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vue.js +347 -0
  40. package/docs/.vitepress/cache/deps_temp_44e2fb0f/vue.js.map +7 -0
  41. package/docs/.vitepress/config.ts +167 -0
  42. package/docs/.vitepress/theme/custom.css +39 -0
  43. package/docs/.vitepress/theme/index.ts +4 -0
  44. package/docs/README.md +82 -0
  45. package/docs/commands/branch.md +468 -0
  46. package/docs/commands/commit.md +554 -0
  47. package/docs/commands/config.md +346 -0
  48. package/docs/commands/index.md +312 -0
  49. package/docs/commands/interactive.md +384 -0
  50. package/docs/commands/release.md +300 -0
  51. package/docs/commands/stash.md +309 -0
  52. package/docs/commands/tag.md +278 -0
  53. package/docs/commands/update.md +347 -0
  54. package/docs/config/ai-config.md +160 -0
  55. package/docs/config/branch-config.md +133 -0
  56. package/docs/config/commit-config.md +185 -0
  57. package/docs/config/config-file.md +776 -0
  58. package/docs/config/examples.md +279 -0
  59. package/docs/config/index.md +478 -0
  60. package/docs/guide/ai-commit.md +576 -0
  61. package/docs/guide/basic-usage.md +522 -0
  62. package/docs/guide/best-practices.md +426 -0
  63. package/docs/guide/branch-management.md +712 -0
  64. package/docs/guide/getting-started.md +294 -0
  65. package/docs/guide/index.md +168 -0
  66. package/docs/guide/installation.md +449 -0
  67. package/docs/guide/release-management.md +744 -0
  68. package/docs/guide/stash-management.md +608 -0
  69. package/docs/guide/tag-management.md +614 -0
  70. package/docs/index.md +205 -0
  71. package/docs/public/favicon.svg +21 -0
  72. package/docs/public/hero-logo.svg +43 -0
  73. package/docs/public/logo.svg +20 -0
  74. package/package.json +11 -2
  75. package/scripts/publish.js +55 -8
  76. package/scripts/publish.sh +20 -2
  77. package/scripts/release.sh +20 -2
  78. package/scripts/update-test-count.js +55 -0
  79. package/src/ai-service.ts +101 -15
  80. package/src/commands/init.ts +18 -0
  81. package/src/config.ts +1 -0
  82. package/tests/ai-service.test.ts +237 -2
  83. package/tests/help.test.ts +134 -0
  84. package/tests/init.test.ts +582 -0
  85. package/tests/release.test.ts +333 -0
  86. package/tests/setup.ts +21 -0
  87. package/tests/stash.test.ts +376 -0
  88. package/tests/update.test.ts +402 -0
  89. package/vitest.config.ts +3 -0
  90. package/zjex-logo.svg +22 -0
  91. package/zjex-optimized.svg +34 -0
  92. package/zjex.svg +1 -0
@@ -0,0 +1,347 @@
1
+ # Update 命令
2
+
3
+ 更新管理相关的命令详解。
4
+
5
+ ## 📋 命令概览
6
+
7
+ | 命令 | 别名 | 说明 |
8
+ |------|------|------|
9
+ | `gw update` | `gw upt` | 检查并更新到最新版本 |
10
+
11
+ ## 🔄 版本更新
12
+
13
+ ### 基本用法
14
+
15
+ ```bash
16
+ gw update
17
+ gw upt
18
+ ```
19
+
20
+ ### 更新流程
21
+
22
+ ```bash
23
+ $ gw update
24
+ 🔍 检查更新...
25
+
26
+ ┌─────────────────────────────────┐
27
+ │ │
28
+ │ 🎉 发现新版本! │
29
+ │ │
30
+ │ 0.2.24 → 0.2.25 │
31
+ │ │
32
+ └─────────────────────────────────┘
33
+
34
+ ? 是否立即更新?
35
+ ❯ 是,立即更新
36
+ 否,稍后更新
37
+ 查看更新日志
38
+
39
+ ✔ 更新成功!
40
+
41
+ ┌─────────────────────────────────┐
42
+ │ │
43
+ │ ✨ 更新完成! │
44
+ │ │
45
+ │ 请重新打开终端使用新版本 │
46
+ │ │
47
+ └─────────────────────────────────┘
48
+ ```
49
+
50
+ ## 📊 版本检查
51
+
52
+ ### 当前版本
53
+
54
+ ```bash
55
+ $ gw --version
56
+ 0.2.24
57
+
58
+ $ gw -v
59
+ 0.2.24
60
+ ```
61
+
62
+ ### 版本对比
63
+
64
+ 工具会自动对比本地版本和最新版本:
65
+
66
+ ```bash
67
+ 当前版本: 0.2.24
68
+ 最新版本: 0.2.25
69
+ 状态: 有新版本可用
70
+ ```
71
+
72
+ ## 🎯 更新场景
73
+
74
+ ### 有新版本
75
+
76
+ ```bash
77
+ $ gw update
78
+ 🔍 检查更新...
79
+
80
+ 发现新版本: 0.2.24 → 0.2.25
81
+
82
+ 新版本特性:
83
+ • 修复 AI commit 生成问题
84
+ • 优化分支创建流程
85
+ • 更新文档和示例
86
+
87
+ ? 是否立即更新?
88
+ ❯ 是,立即更新
89
+ 否,稍后更新
90
+ 查看完整更新日志
91
+ ```
92
+
93
+ ### 已是最新版本
94
+
95
+ ```bash
96
+ $ gw update
97
+ 🔍 检查更新...
98
+
99
+ ✔ 当前已是最新版本 (0.2.25)
100
+ ```
101
+
102
+ ### 网络连接问题
103
+
104
+ ```bash
105
+ $ gw update
106
+ 🔍 检查更新...
107
+
108
+ ❌ 无法连接到更新服务器
109
+ 请检查网络连接后重试
110
+ ```
111
+
112
+ ## 📋 更新日志
113
+
114
+ ### 查看更新日志
115
+
116
+ ```bash
117
+ ? 是否立即更新: 查看更新日志
118
+
119
+ # Git Workflow v0.2.25
120
+
121
+ ## 🎉 新功能
122
+ - 添加 AI commit 详细描述功能
123
+ - 支持自定义分支前缀配置
124
+
125
+ ## 🐛 Bug 修复
126
+ - 修复 tag 创建时的版本检测问题
127
+ - 优化 stash 管理的文件显示
128
+
129
+ ## 📝 文档更新
130
+ - 完善 VitePress 文档站点
131
+ - 添加配置示例和最佳实践
132
+
133
+ ## 🔧 其他改进
134
+ - 优化命令行界面显示
135
+ - 提升错误处理和用户体验
136
+
137
+ 按任意键继续...
138
+ ```
139
+
140
+ ### 版本历史
141
+
142
+ 可以查看完整的版本更新历史:
143
+
144
+ ```bash
145
+ # 最近版本
146
+ v0.2.25 - 2026-01-11
147
+ v0.2.24 - 2026-01-10
148
+ v0.2.23 - 2026-01-09
149
+ ...
150
+ ```
151
+
152
+ ## 🔧 更新方式
153
+
154
+ ### 自动更新
155
+
156
+ 工具使用 npm 进行更新:
157
+
158
+ ```bash
159
+ # 实际执行的命令
160
+ npm install -g @zjex/git-workflow@latest
161
+ ```
162
+
163
+ ### 手动更新
164
+
165
+ 如果自动更新失败,可以手动更新:
166
+
167
+ ```bash
168
+ # npm
169
+ npm install -g @zjex/git-workflow@latest
170
+
171
+ # pnpm
172
+ pnpm add -g @zjex/git-workflow@latest
173
+
174
+ # yarn
175
+ yarn global add @zjex/git-workflow@latest
176
+ ```
177
+
178
+ ## 🔔 更新提醒
179
+
180
+ ### 自动检查
181
+
182
+ 工具会在以下情况自动检查更新:
183
+
184
+ 1. **每日首次使用** - 每天第一次运行命令时
185
+ 2. **版本差距较大** - 本地版本落后较多时
186
+ 3. **手动检查** - 运行 `gw update` 时
187
+
188
+ ### 提醒频率
189
+
190
+ ```bash
191
+ # 配置更新检查频率
192
+ export GW_UPDATE_CHECK=daily # 每日检查(默认)
193
+ export GW_UPDATE_CHECK=weekly # 每周检查
194
+ export GW_UPDATE_CHECK=never # 禁用自动检查
195
+ ```
196
+
197
+ ### 静默模式
198
+
199
+ ```bash
200
+ # 禁用更新提醒
201
+ export GW_SILENT_UPDATE=true
202
+
203
+ # 或在配置文件中设置
204
+ {
205
+ "updateCheck": {
206
+ "enabled": false
207
+ }
208
+ }
209
+ ```
210
+
211
+ ## 🎯 使用场景
212
+
213
+ ### 定期维护
214
+
215
+ ```bash
216
+ # 每周检查更新
217
+ gw update
218
+
219
+ # 查看版本信息
220
+ gw --version
221
+ ```
222
+
223
+ ### CI/CD 环境
224
+
225
+ ```bash
226
+ # 在 CI 中使用固定版本
227
+ npm install -g @zjex/git-workflow@0.2.24
228
+
229
+ # 或使用最新版本
230
+ npm install -g @zjex/git-workflow@latest
231
+ ```
232
+
233
+ ### 团队同步
234
+
235
+ ```bash
236
+ # 团队统一版本
237
+ echo "推荐使用 git-workflow v0.2.25"
238
+ echo "更新命令: gw update"
239
+ ```
240
+
241
+ ## 🚀 版本管理
242
+
243
+ ### 语义化版本
244
+
245
+ 工具遵循 [Semantic Versioning](https://semver.org/) 规范:
246
+
247
+ ```
248
+ 主版本号.次版本号.修订号
249
+
250
+ 0.2.24 → 0.2.25 # 修订号:Bug 修复
251
+ 0.2.25 → 0.3.0 # 次版本号:新功能
252
+ 0.3.0 → 1.0.0 # 主版本号:重大变更
253
+ ```
254
+
255
+ ### 版本兼容性
256
+
257
+ - **修订号更新** - 完全兼容,建议立即更新
258
+ - **次版本更新** - 向下兼容,可以安全更新
259
+ - **主版本更新** - 可能不兼容,需要查看迁移指南
260
+
261
+ ### 预发布版本
262
+
263
+ ```bash
264
+ # 安装预发布版本
265
+ npm install -g @zjex/git-workflow@beta
266
+ npm install -g @zjex/git-workflow@alpha
267
+
268
+ # 回到稳定版本
269
+ npm install -g @zjex/git-workflow@latest
270
+ ```
271
+
272
+ ## 🔧 故障排除
273
+
274
+ ### 更新失败
275
+
276
+ ```bash
277
+ # 权限问题
278
+ sudo npm install -g @zjex/git-workflow@latest
279
+
280
+ # 缓存问题
281
+ npm cache clean --force
282
+ npm install -g @zjex/git-workflow@latest
283
+
284
+ # 网络问题
285
+ npm config set registry https://registry.npmmirror.com/
286
+ npm install -g @zjex/git-workflow@latest
287
+ ```
288
+
289
+ ### 版本冲突
290
+
291
+ ```bash
292
+ # 卸载旧版本
293
+ npm uninstall -g @zjex/git-workflow
294
+
295
+ # 安装新版本
296
+ npm install -g @zjex/git-workflow@latest
297
+
298
+ # 验证安装
299
+ gw --version
300
+ ```
301
+
302
+ ### 配置迁移
303
+
304
+ 主版本更新时可能需要迁移配置:
305
+
306
+ ```bash
307
+ # 备份配置
308
+ cp ~/.gwrc.json ~/.gwrc.json.backup
309
+
310
+ # 重新初始化配置
311
+ gw init
312
+
313
+ # 对比配置差异
314
+ diff ~/.gwrc.json.backup ~/.gwrc.json
315
+ ```
316
+
317
+ ## 📋 最佳实践
318
+
319
+ ### 更新策略
320
+
321
+ 1. **及时更新** - 修订号更新建议立即更新
322
+ 2. **测试验证** - 次版本更新前在测试环境验证
323
+ 3. **谨慎升级** - 主版本更新前详细阅读变更日志
324
+
325
+ ### 团队协作
326
+
327
+ 1. **版本统一** - 团队使用相同版本
328
+ 2. **更新通知** - 及时通知团队成员更新
329
+ 3. **文档维护** - 更新项目文档中的版本要求
330
+
331
+ ### 自动化
332
+
333
+ ```bash
334
+ # 在 CI 中自动更新
335
+ - name: Update git-workflow
336
+ run: |
337
+ npm install -g @zjex/git-workflow@latest
338
+ gw --version
339
+ ```
340
+
341
+ ### 监控
342
+
343
+ ```bash
344
+ # 监控版本状态
345
+ gw --version
346
+ gw update --check-only # 仅检查,不更新
347
+ ```
@@ -0,0 +1,160 @@
1
+ # AI 配置
2
+
3
+ AI commit 功能的详细配置指南。
4
+
5
+ ## 🤖 AI 提供商
6
+
7
+ ### GitHub Models(推荐)
8
+
9
+ 免费使用,每天 150 次调用限制。
10
+
11
+ ```json
12
+ {
13
+ "aiCommit": {
14
+ "provider": "github",
15
+ "apiKey": "ghp_your_token_here"
16
+ }
17
+ }
18
+ ```
19
+
20
+ **获取 GitHub Token:**
21
+ 1. 访问:https://github.com/settings/tokens/new
22
+ 2. 勾选 `repo` 权限
23
+ 3. 生成并复制 token
24
+
25
+ ### OpenAI
26
+
27
+ 付费服务,需要 OpenAI API Key。
28
+
29
+ ```json
30
+ {
31
+ "aiCommit": {
32
+ "provider": "openai",
33
+ "apiKey": "sk-your_api_key_here",
34
+ "model": "gpt-4o-mini"
35
+ }
36
+ }
37
+ ```
38
+
39
+ ### Claude
40
+
41
+ 付费服务,需要 Claude API Key。
42
+
43
+ ```json
44
+ {
45
+ "aiCommit": {
46
+ "provider": "claude",
47
+ "apiKey": "sk-ant-your_api_key_here",
48
+ "model": "claude-3-haiku-20240307"
49
+ }
50
+ }
51
+ ```
52
+
53
+ ### Ollama(本地)
54
+
55
+ 免费本地运行,需要安装 Ollama。
56
+
57
+ ```json
58
+ {
59
+ "aiCommit": {
60
+ "provider": "ollama",
61
+ "model": "qwen2.5-coder:7b"
62
+ }
63
+ }
64
+ ```
65
+
66
+ ## 📝 详细描述配置
67
+
68
+ 控制是否生成包含修改点的详细 commit message。
69
+
70
+ ```json
71
+ {
72
+ "aiCommit": {
73
+ "detailedDescription": true
74
+ }
75
+ }
76
+ ```
77
+
78
+ **效果对比:**
79
+
80
+ 简洁模式:
81
+ ```
82
+ feat(auth): 添加用户登录功能
83
+ ```
84
+
85
+ 详细模式:
86
+ ```
87
+ feat(auth): 添加用户登录功能
88
+
89
+ - 实现用户名密码登录接口
90
+ - 添加登录状态验证中间件
91
+ - 完善登录错误处理逻辑
92
+ ```
93
+
94
+ ## 🌍 语言配置
95
+
96
+ 支持中文和英文两种语言。
97
+
98
+ ```json
99
+ {
100
+ "aiCommit": {
101
+ "language": "zh-CN" // 或 "en-US"
102
+ }
103
+ }
104
+ ```
105
+
106
+ ## ⚙️ 高级配置
107
+
108
+ ### Token 限制
109
+
110
+ ```json
111
+ {
112
+ "aiCommit": {
113
+ "maxTokens": 400
114
+ }
115
+ }
116
+ ```
117
+
118
+ ### 温度参数
119
+
120
+ ```json
121
+ {
122
+ "aiCommit": {
123
+ "temperature": 0.3
124
+ }
125
+ }
126
+ ```
127
+
128
+ ### 自定义提示词
129
+
130
+ ```json
131
+ {
132
+ "aiCommit": {
133
+ "customPrompt": "请生成简洁的中文 commit message"
134
+ }
135
+ }
136
+ ```
137
+
138
+ ## 🔧 故障排除
139
+
140
+ ### 常见问题
141
+
142
+ 1. **API Key 无效**
143
+ - 检查 API Key 是否正确
144
+ - 确认权限设置
145
+
146
+ 2. **网络连接问题**
147
+ - 检查网络连接
148
+ - 考虑使用代理
149
+
150
+ 3. **Token 限制**
151
+ - 调整 maxTokens 参数
152
+ - 使用简洁模式
153
+
154
+ ### 调试模式
155
+
156
+ 设置环境变量启用调试:
157
+
158
+ ```bash
159
+ DEBUG=1 gw c
160
+ ```
@@ -0,0 +1,133 @@
1
+ # 分支配置
2
+
3
+ 分支管理相关的配置选项。
4
+
5
+ ## 🌿 基础分支
6
+
7
+ 设置默认的基础分支。
8
+
9
+ ```json
10
+ {
11
+ "baseBranch": "develop"
12
+ }
13
+ ```
14
+
15
+ 如果不设置,工具会自动检测 `main` 或 `master`。
16
+
17
+ ## 🏷️ 分支前缀
18
+
19
+ 自定义分支前缀。
20
+
21
+ ```json
22
+ {
23
+ "featurePrefix": "feature",
24
+ "hotfixPrefix": "hotfix"
25
+ }
26
+ ```
27
+
28
+ **生成的分支名格式:**
29
+ ```
30
+ feature/20260111-PROJ-123-add-login
31
+ hotfix/20260111-BUG-456-fix-crash
32
+ ```
33
+
34
+ ## 🆔 ID 配置
35
+
36
+ 控制是否强制要求填写 ID。
37
+
38
+ ```json
39
+ {
40
+ "requireId": true,
41
+ "featureIdLabel": "Jira ID",
42
+ "hotfixIdLabel": "Bug ID"
43
+ }
44
+ ```
45
+
46
+ **效果:**
47
+ - `requireId: false` - ID 可选,可以跳过
48
+ - `requireId: true` - ID 必填,不能跳过
49
+
50
+ ## 🚀 自动推送
51
+
52
+ 控制创建分支后是否自动推送到远程。
53
+
54
+ ```json
55
+ {
56
+ "autoPush": true
57
+ }
58
+ ```
59
+
60
+ **选项:**
61
+ - `true` - 自动推送,不询问
62
+ - `false` - 不推送,不询问
63
+ - 不设置 - 每次询问(默认)
64
+
65
+ ## 📋 使用场景
66
+
67
+ ### 个人开发
68
+
69
+ ```json
70
+ {
71
+ "featurePrefix": "feat",
72
+ "requireId": false,
73
+ "autoPush": false
74
+ }
75
+ ```
76
+
77
+ ### 团队协作
78
+
79
+ ```json
80
+ {
81
+ "baseBranch": "develop",
82
+ "requireId": true,
83
+ "featureIdLabel": "Jira ID",
84
+ "hotfixIdLabel": "Bug ID",
85
+ "autoPush": true
86
+ }
87
+ ```
88
+
89
+ ### 开源项目
90
+
91
+ ```json
92
+ {
93
+ "featurePrefix": "feature",
94
+ "hotfixPrefix": "fix",
95
+ "requireId": false,
96
+ "autoPush": false
97
+ }
98
+ ```
99
+
100
+ ## 🔧 高级用法
101
+
102
+ ### 自定义分支命名
103
+
104
+ 通过配置前缀和标签,可以实现不同的命名风格:
105
+
106
+ ```json
107
+ {
108
+ "featurePrefix": "feat",
109
+ "hotfixPrefix": "fix",
110
+ "featureIdLabel": "Story",
111
+ "hotfixIdLabel": "Issue"
112
+ }
113
+ ```
114
+
115
+ 生成:`feat/20260111-Story-123-description`
116
+
117
+ ### 多环境配置
118
+
119
+ 不同环境使用不同的基础分支:
120
+
121
+ ```json
122
+ {
123
+ "baseBranch": "develop"
124
+ }
125
+ ```
126
+
127
+ ### 分支保护
128
+
129
+ 配合 GitHub 分支保护规则,确保代码质量:
130
+
131
+ 1. 设置 `autoPush: true`
132
+ 2. 在 GitHub 设置分支保护
133
+ 3. 要求 PR 审查