create-branch-cli 1.0.0 → 1.0.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 (3) hide show
  1. package/README.md +163 -8
  2. package/index.js +1240 -234
  3. package/package.json +2 -3
package/README.md CHANGED
@@ -7,17 +7,21 @@
7
7
  - 🚀 快速创建 Git 分支
8
8
  - 📝 自动生成规范的分支名称
9
9
  - 👤 首次使用自动保存用户信息(工号、姓名)
10
- - 🐛 支持 feature 和 hotFix 两种分支类型
10
+ - 🐛 支持 feature 和 hotfix 两种分支类型
11
11
  - 📅 自动添加日期后缀
12
+ - 💾 支持保存需求唯一标识,快速提交和推送
13
+ - 🎯 支持为不同项目配置不同的目标分支(如 master 或 main)
14
+ - 🔄 支持 push 后自动轮询检查合并状态
15
+ - 🔍 支持监听 GitLab 合并请求状态,合并后自动拉取最新目标分支代码
12
16
 
13
17
  ## 分支命名规则
14
18
 
15
19
  - **Feature 分支**: `feature/工号_姓名_需求标题_年月日`
16
- - **HotFix 分支**: `hotFix/工号_姓名_需求标题_年月日`
20
+ - **HotFix 分支**: `hotfix/工号_姓名_需求标题_年月日`
17
21
 
18
22
  示例:
19
23
  - `feature/001_张三_用户登录功能_20251226`
20
- - `hotFix/001_张三_修复登录bug_20251226`
24
+ - `hotfix/001_张三_修复登录bug_20251226`
21
25
 
22
26
  ## 安装
23
27
 
@@ -54,21 +58,128 @@ npm install -g create-branch-cli
54
58
  ### 创建 Feature 分支
55
59
 
56
60
  ```bash
61
+ # 仅创建分支
57
62
  create-branch 用户登录功能
58
63
  # 或使用别名
59
64
  cb 用户登录功能
65
+
66
+ # 创建分支并保存需求唯一标识(用于后续快速提交)
67
+ create-branch 用户登录功能 PROJ-123
68
+ # 或使用别名
69
+ cb 用户登录功能 PROJ-123
60
70
  ```
61
71
 
62
72
  ### 创建 HotFix 分支
63
73
 
64
74
  ```bash
75
+ # 仅创建分支
65
76
  create-branch 修复登录bug -b
66
77
  # 或
67
78
  create-branch 修复登录bug --bug
68
79
  # 或使用别名
69
80
  cb 修复登录bug -b
81
+
82
+ # 创建分支并保存需求唯一标识
83
+ create-branch 修复登录bug PROJ-124 -b
84
+ # 或使用别名
85
+ cb 修复登录bug PROJ-124 -b
86
+ ```
87
+
88
+ ### 快速提交和推送
89
+
90
+ 如果创建分支时输入了需求唯一标识,可以使用以下命令快速提交和推送:
91
+
92
+ ```bash
93
+ create-branch push
94
+ # 或使用别名
95
+ cb push
96
+ ```
97
+
98
+ **说明**:
99
+ - 会自动添加所有更改到暂存区
100
+ - 提交信息格式:`需求唯一标识:需求标题`(例如:`PROJ-123:用户登录功能`)
101
+ - 自动推送到远程仓库的当前分支
102
+ - **首次使用时,会提示设置当前项目的目标分支(如 master 或 main)**
103
+ - 如果启用了自动同步(`autoSyncMaster`),push 后会自动开始轮询检查合并状态
104
+ - 轮询检测到合并后会自动切换到目标分支并拉取最新代码
105
+
106
+ ### 配置用户信息
107
+
108
+ 如果需要修改工号、姓名或配置选项,可以使用以下命令:
109
+
110
+ ```bash
111
+ create-branch config
112
+ # 或使用别名
113
+ cb config
114
+ ```
115
+
116
+ **说明**:
117
+ - 会提示输入新的工号和姓名
118
+ - 可以配置是否启用合并后自动拉取目标分支(需要配置 GitLab 信息)
119
+ - 如果启用了自动同步,push 后会自动开始轮询检查合并状态
120
+ - 配置后,之前保存的需求信息会保留
121
+ - 新创建的分支将使用新的工号和姓名
122
+
123
+ ### 设置目标分支
124
+
125
+ 设置当前项目的目标分支(例如:master 或 main),用于自动创建合并请求和拉取最新代码。
126
+
127
+ ```bash
128
+ create-branch set-target
129
+ # 或使用别名
130
+ cb set-target
131
+ ```
132
+
133
+ **说明**:
134
+ - 首次使用 `push` 命令时会自动提示设置
135
+ - 设置后的目标分支名会保存在配置文件中
136
+ - 每个项目可以有不同的目标分支
137
+
138
+ ### 检查合并状态并同步目标分支
139
+
140
+ 如果启用了 GitLab 自动同步功能,可以使用以下命令手动检查当前分支的合并请求状态:
141
+
142
+ ```bash
143
+ create-branch sync
144
+ # 或
145
+ create-branch check
146
+ # 或使用别名
147
+ cb sync
148
+ # 或
149
+ cb check
70
150
  ```
71
151
 
152
+ **说明**:
153
+ - 检查当前分支的合并请求是否已合并到目标分支
154
+ - 如果已合并,自动切换到目标分支并拉取最新代码
155
+ - 如果未合并,显示合并请求状态和链接
156
+
157
+ ### 轮询检查合并状态
158
+
159
+ 由于合并请求是在 GitLab 上手动操作的,工具无法实时知道合并状态。可以使用轮询功能定期检查:
160
+
161
+ ```bash
162
+ # 默认每30秒检查一次,直到合并或手动停止(Ctrl+C)
163
+ create-branch watch
164
+ # 或
165
+ cb watch
166
+
167
+ # 指定检查间隔(秒)
168
+ cb watch 60 # 每60秒检查一次
169
+
170
+ # 指定检查间隔和最大检查次数
171
+ cb watch 30 60 # 每30秒检查一次,最多检查60次(30分钟)
172
+
173
+ # 指定分支名、间隔和最大次数
174
+ cb watch feature/xxx_xxx_xxx_20251226 30 60
175
+ ```
176
+
177
+ **说明**:
178
+ - 轮询会定期检查合并请求状态
179
+ - 一旦检测到合并,会自动切换到目标分支并拉取最新代码
180
+ - 可以使用 Ctrl+C 随时停止轮询
181
+ - 建议在 push 代码并创建合并请求后使用此功能
182
+
72
183
  ### 查看帮助
73
184
 
74
185
  ```bash
@@ -79,18 +190,54 @@ cb
79
190
 
80
191
  ## 配置
81
192
 
82
- 用户信息保存在 `~/.create-branch/config.json` 文件中,格式如下:
193
+ 用户信息和需求信息保存在 `~/.create-branch/config.json` 文件中,格式如下:
83
194
 
84
195
  ```json
85
196
  {
86
197
  "workId": "001",
87
- "name": "张三"
198
+ "name": "张三",
199
+ "autoSyncMaster": false,
200
+ "gitlab": {
201
+ "url": "https://gitlab.com",
202
+ "token": "your-personal-access-token"
203
+ },
204
+ "projects": {
205
+ "group_project": {
206
+ "targetBranch": "master"
207
+ }
208
+ },
209
+ "requirements": {
210
+ "feature/001_张三_用户登录功能_20251226": {
211
+ "id": "PROJ-123",
212
+ "title": "用户登录功能",
213
+ "branchName": "feature/001_张三_用户登录功能_20251226"
214
+ }
215
+ }
88
216
  }
89
217
  ```
90
218
 
219
+ **配置说明**:
220
+ - `workId`: 工号
221
+ - `name`: 姓名
222
+ - `autoSyncMaster`: 是否启用合并后自动拉取目标分支(默认:false)
223
+ - `gitlab`: GitLab 配置(仅在启用自动同步时需要)
224
+ - `url`: GitLab 服务器地址(例如:https://gitlab.com)
225
+ - `token`: GitLab Personal Access Token(需要 `api` 权限)
226
+ - `projects`: 项目配置(以项目路径或 ID 为 key)
227
+ - `targetBranch`: 项目的目标分支(如 master 或 main)
228
+ - `requirements`: 需求信息(以分支名为 key,自动保存)
229
+
230
+ **GitLab Personal Access Token 获取方法**:
231
+ 1. 登录 GitLab
232
+ 2. 进入 Settings → Access Tokens
233
+ 3. 创建新的 Personal Access Token
234
+ 4. 勾选 `api` 权限
235
+ 5. 复制生成的 token
236
+
91
237
  如果需要修改用户信息,可以:
92
- 1. 直接编辑配置文件
93
- 2. 删除配置文件,下次使用时重新录入
238
+ 1. 使用 `cb config` 命令(推荐)
239
+ 2. 直接编辑配置文件
240
+ 3. 删除配置文件,下次使用时重新录入
94
241
 
95
242
  ## 注意事项
96
243
 
@@ -98,8 +245,16 @@ cb
98
245
  2. 如果分支已存在,工具会提示是否切换到已存在的分支
99
246
  3. 需求标题中的空格会自动替换为下划线
100
247
  4. 日期格式为 YYYYMMDD(例如:20251226)
248
+ 5. 使用 `cb push` 前,请确保创建分支时输入了需求唯一标识
249
+ 6. `cb push` 会自动添加所有更改并提交,提交信息格式:`需求唯一标识:需求标题`
250
+ 7. 启用自动同步功能需要配置 GitLab Personal Access Token(需要 `api` 权限)
251
+ 8. 自动同步功能会通过 GitLab API 检查合并请求状态,需要网络连接
252
+ 9. **重要**:如果启用了自动同步,push 后会自动开始轮询检查合并状态(每30秒检查一次)
253
+ 10. 轮询会在后台运行,检测到合并后会自动切换到目标分支并拉取最新代码
254
+ 11. 如果切换了分支,轮询会自动停止
255
+ 12. 可以使用 Ctrl+C 随时停止轮询,或使用 `cb sync` 手动检查一次
256
+ 13. 每个项目需要设置一次目标分支(`set-target` 或首次 push 时),支持 master、main 等不同分支名
101
257
 
102
258
  ## 许可证
103
259
 
104
260
  ISC
105
-