create-branch-cli 1.0.1 → 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.
- package/README.md +105 -12
- package/index.js +1240 -396
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -7,18 +7,21 @@
|
|
|
7
7
|
- 🚀 快速创建 Git 分支
|
|
8
8
|
- 📝 自动生成规范的分支名称
|
|
9
9
|
- 👤 首次使用自动保存用户信息(工号、姓名)
|
|
10
|
-
- 🐛 支持 feature 和
|
|
10
|
+
- 🐛 支持 feature 和 hotfix 两种分支类型
|
|
11
11
|
- 📅 自动添加日期后缀
|
|
12
12
|
- 💾 支持保存需求唯一标识,快速提交和推送
|
|
13
|
+
- 🎯 支持为不同项目配置不同的目标分支(如 master 或 main)
|
|
14
|
+
- 🔄 支持 push 后自动轮询检查合并状态
|
|
15
|
+
- 🔍 支持监听 GitLab 合并请求状态,合并后自动拉取最新目标分支代码
|
|
13
16
|
|
|
14
17
|
## 分支命名规则
|
|
15
18
|
|
|
16
19
|
- **Feature 分支**: `feature/工号_姓名_需求标题_年月日`
|
|
17
|
-
- **HotFix 分支**: `
|
|
20
|
+
- **HotFix 分支**: `hotfix/工号_姓名_需求标题_年月日`
|
|
18
21
|
|
|
19
22
|
示例:
|
|
20
23
|
- `feature/001_张三_用户登录功能_20251226`
|
|
21
|
-
- `
|
|
24
|
+
- `hotfix/001_张三_修复登录bug_20251226`
|
|
22
25
|
|
|
23
26
|
## 安装
|
|
24
27
|
|
|
@@ -96,26 +99,87 @@ cb push
|
|
|
96
99
|
- 会自动添加所有更改到暂存区
|
|
97
100
|
- 提交信息格式:`需求唯一标识:需求标题`(例如:`PROJ-123:用户登录功能`)
|
|
98
101
|
- 自动推送到远程仓库的当前分支
|
|
102
|
+
- **首次使用时,会提示设置当前项目的目标分支(如 master 或 main)**
|
|
103
|
+
- 如果启用了自动同步(`autoSyncMaster`),push 后会自动开始轮询检查合并状态
|
|
104
|
+
- 轮询检测到合并后会自动切换到目标分支并拉取最新代码
|
|
99
105
|
|
|
100
|
-
###
|
|
106
|
+
### 配置用户信息
|
|
101
107
|
|
|
102
|
-
|
|
108
|
+
如果需要修改工号、姓名或配置选项,可以使用以下命令:
|
|
103
109
|
|
|
104
110
|
```bash
|
|
105
|
-
create-branch reset
|
|
106
|
-
# 或
|
|
107
111
|
create-branch config
|
|
108
112
|
# 或使用别名
|
|
109
|
-
cb reset
|
|
110
|
-
# 或
|
|
111
113
|
cb config
|
|
112
114
|
```
|
|
113
115
|
|
|
114
116
|
**说明**:
|
|
115
117
|
- 会提示输入新的工号和姓名
|
|
116
|
-
-
|
|
118
|
+
- 可以配置是否启用合并后自动拉取目标分支(需要配置 GitLab 信息)
|
|
119
|
+
- 如果启用了自动同步,push 后会自动开始轮询检查合并状态
|
|
120
|
+
- 配置后,之前保存的需求信息会保留
|
|
117
121
|
- 新创建的分支将使用新的工号和姓名
|
|
118
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
|
|
150
|
+
```
|
|
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
|
+
|
|
119
183
|
### 查看帮助
|
|
120
184
|
|
|
121
185
|
```bash
|
|
@@ -132,6 +196,16 @@ cb
|
|
|
132
196
|
{
|
|
133
197
|
"workId": "001",
|
|
134
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
|
+
},
|
|
135
209
|
"requirements": {
|
|
136
210
|
"feature/001_张三_用户登录功能_20251226": {
|
|
137
211
|
"id": "PROJ-123",
|
|
@@ -145,10 +219,23 @@ cb
|
|
|
145
219
|
**配置说明**:
|
|
146
220
|
- `workId`: 工号
|
|
147
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)
|
|
148
228
|
- `requirements`: 需求信息(以分支名为 key,自动保存)
|
|
149
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
|
+
|
|
150
237
|
如果需要修改用户信息,可以:
|
|
151
|
-
1. 使用 `cb
|
|
238
|
+
1. 使用 `cb config` 命令(推荐)
|
|
152
239
|
2. 直接编辑配置文件
|
|
153
240
|
3. 删除配置文件,下次使用时重新录入
|
|
154
241
|
|
|
@@ -160,8 +247,14 @@ cb
|
|
|
160
247
|
4. 日期格式为 YYYYMMDD(例如:20251226)
|
|
161
248
|
5. 使用 `cb push` 前,请确保创建分支时输入了需求唯一标识
|
|
162
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 等不同分支名
|
|
163
257
|
|
|
164
258
|
## 许可证
|
|
165
259
|
|
|
166
260
|
ISC
|
|
167
|
-
|