@done-coding/cli-git 0.6.11 → 0.6.13-alpha.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.
package/README.md CHANGED
@@ -1,11 +1,339 @@
1
1
  # @done-coding/cli-git
2
2
 
3
+ git 跨平台操作命令行工具 - 提供 git 平台克隆、钩子管理和检查功能
4
+
5
+ [![npm version](https://badge.fury.io/js/@done-coding%2Fcli-git.svg)](https://www.npmjs.com/package/@done-coding/cli-git)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+
8
+ ## 安装
9
+
10
+ ### 独立安装
11
+ ```bash
12
+ npm install @done-coding/cli-git
13
+ # 或
14
+ pnpm add @done-coding/cli-git
3
15
  ```
4
- git跨平台操作命令行工具
16
+
17
+ ### 作为 done-coding CLI 的一部分
18
+ ```bash
19
+ npm install -g @done-coding/cli
20
+ # 然后使用
21
+ DC git [command] # macOS/Linux
22
+ dc git [command] # Windows
5
23
  ```
6
24
 
7
- ## 使用
25
+ ## 快速开始
8
26
 
9
- ``` bash
10
- npm install @done-coding/cli-git
11
- ```
27
+ ```bash
28
+ # 独立使用
29
+ dc-git --help
30
+
31
+ # 作为主 CLI 的子命令
32
+ DC git --help # macOS/Linux
33
+ dc git --help # Windows
34
+ ```
35
+
36
+ ## 功能特性
37
+
38
+ - ✅ **平台克隆**: 支持从 GitHub、GitLab 等平台快速克隆用户仓库
39
+ - 🔧 **配置管理**: 初始化和管理 git 相关配置文件
40
+ - 🪝 **钩子支持**: 提供 git 钩子的回调和管理功能
41
+ - 🔍 **状态检查**: 检查 git 操作和仓库状态
42
+
43
+ ## API 文档
44
+
45
+ ### 基础命令
46
+
47
+ #### `dc-git init`
48
+ 初始化配置文件
49
+
50
+ ```bash
51
+ dc-git init
52
+ # 创建 git 相关的配置文件
53
+ ```
54
+
55
+ #### `dc-git clone <platform> <username>`
56
+ 从指定的 git 平台克隆用户的代码仓库
57
+
58
+ ```bash
59
+ # 从 GitHub 克隆用户仓库
60
+ dc-git clone github username
61
+
62
+ # 从 GitLab 克隆用户仓库
63
+ dc-git clone gitlab username
64
+
65
+ # 从其他平台克隆
66
+ dc-git clone bitbucket username
67
+ ```
68
+
69
+ **参数说明**:
70
+ - `platform`: git 平台名称 (github, gitlab, bitbucket 等)
71
+ - `username`: 用户名
72
+
73
+ #### `dc-git hooks <name> [args...]`
74
+ 执行 git 钩子回调
75
+
76
+ ```bash
77
+ # 执行 pre-commit 钩子
78
+ dc-git hooks pre-commit
79
+
80
+ # 执行 post-commit 钩子
81
+ dc-git hooks post-commit
82
+
83
+ # 带参数执行钩子
84
+ dc-git hooks pre-push origin main
85
+ ```
86
+
87
+ **参数说明**:
88
+ - `name`: 钩子名称
89
+ - `args`: 传递给钩子的参数
90
+
91
+ #### `dc-git check <type>`
92
+ 检查 git 操作和状态,主要为工程化配置提供支持
93
+
94
+ ```bash
95
+ # 检测反向合并(为 dc-config 的 merge-lint 模块提供支持)
96
+ dc-git check reverse-merge
97
+ ```
98
+
99
+ **参数说明**:
100
+ - `type`: 检查类型
101
+ - `reverse-merge`: 检测反向合并,防止高级分支被合并到低级分支
102
+
103
+ **功能说明**:
104
+ 此命令主要为 `@done-coding/cli-config` 包的 `merge-lint` 模块提供 git 合并规范检测功能,确保团队遵循正确的分支合并方向。
105
+
106
+ ## 使用示例
107
+
108
+ ### 基础使用场景
109
+
110
+ ```bash
111
+ # 1. 初始化配置
112
+ dc-git init
113
+
114
+ # 2. 从 Gitee 克隆用户的所有仓库
115
+ dc-git clone gitee username
116
+
117
+ # 3. 检查反向合并(通常由 dc-config 自动调用)
118
+ dc-git check reverse-merge
119
+
120
+ # 4. 执行 git 钩子
121
+ dc-git hooks pre-commit
122
+ ```
123
+
124
+ ### 集成到工程化配置
125
+
126
+ ```bash
127
+ # dc-config 包会自动调用 git 检测功能
128
+ dc-config check
129
+
130
+ # 如果启用了 merge-lint 模块,会自动执行:
131
+ # dc-git check reverse-merge
132
+ ```
133
+
134
+ ### 作为主 CLI 的一部分
135
+
136
+ ```bash
137
+ # Windows 系统
138
+ dc git init
139
+ dc git clone gitee username
140
+ dc git hooks pre-commit
141
+ dc git check reverse-merge
142
+
143
+ # macOS/Linux 系统
144
+ DC git init
145
+ DC git clone gitee username
146
+ DC git hooks pre-commit
147
+ DC git check reverse-merge
148
+ ```
149
+
150
+ ## 配置
151
+
152
+ 在项目根目录创建 `.done-coding-git.config.js`:
153
+
154
+ ```javascript
155
+ export default {
156
+ // 默认平台
157
+ defaultPlatform: 'github',
158
+
159
+ // 克隆配置
160
+ clone: {
161
+ // 默认克隆协议
162
+ protocol: 'https', // 或 'ssh'
163
+ // 目标目录
164
+ targetDir: './repos'
165
+ },
166
+
167
+ // 钩子配置
168
+ hooks: {
169
+ // 启用的钩子
170
+ enabled: ['pre-commit', 'post-commit', 'pre-push'],
171
+ // 钩子脚本路径
172
+ scriptsPath: './.git/hooks'
173
+ },
174
+
175
+ // 检查配置
176
+ check: {
177
+ // 默认检查项
178
+ defaultChecks: ['status', 'branch', 'remote']
179
+ }
180
+ };
181
+ ```
182
+
183
+ ## 编程接口
184
+
185
+ ### 作为模块使用
186
+
187
+ ```javascript
188
+ import { GitHelper } from '@done-coding/cli-git/helpers';
189
+
190
+ const git = new GitHelper();
191
+
192
+ // 克隆仓库
193
+ await git.cloneFromPlatform('github', 'username');
194
+
195
+ // 执行钩子
196
+ await git.executeHook('pre-commit', []);
197
+
198
+ // 检查状态
199
+ const status = await git.checkStatus('status');
200
+ console.log(status);
201
+ ```
202
+
203
+ ### TypeScript 支持
204
+
205
+ ```typescript
206
+ import type { PlatformType, HookType, CheckType } from '@done-coding/cli-git/helpers';
207
+
208
+ const platform: PlatformType = 'github';
209
+ const hook: HookType = 'pre-commit';
210
+ const checkType: CheckType = 'status';
211
+ ```
212
+
213
+ ## 故障排除
214
+
215
+ ### 常见问题
216
+
217
+ **Q: 克隆失败**
218
+ ```bash
219
+ # 检查网络连接
220
+ ping github.com
221
+
222
+ # 检查 git 配置
223
+ git config --list
224
+
225
+ # 使用详细模式查看错误
226
+ dc-git clone github username --verbose
227
+ ```
228
+
229
+ **Q: 钩子执行失败**
230
+ ```bash
231
+ # 检查钩子文件权限
232
+ ls -la .git/hooks/
233
+
234
+ # 手动执行钩子测试
235
+ .git/hooks/pre-commit
236
+
237
+ # 重新初始化钩子
238
+ dc-git init
239
+ ```
240
+
241
+ **Q: 检查命令无响应**
242
+ ```bash
243
+ # 确保在 git 仓库中
244
+ git status
245
+
246
+ # 检查仓库完整性
247
+ git fsck
248
+ ```
249
+
250
+ ### 调试模式
251
+
252
+ ```bash
253
+ # 启用详细输出
254
+ dc-git --verbose check status
255
+
256
+ # 启用调试模式
257
+ DEBUG=done-coding:git dc-git clone github username
258
+ ```
259
+
260
+ ## 性能建议
261
+
262
+ - 对于大量仓库克隆,建议分批进行
263
+ - 使用 SSH 协议可以提高克隆速度
264
+ - 定期清理无用的配置文件
265
+
266
+ ## 贡献指南
267
+
268
+ 我们欢迎贡献!请遵循以下步骤:
269
+
270
+ 1. Fork 本仓库
271
+ 2. 创建功能分支:`git checkout -b feature/amazing-feature`
272
+ 3. 提交更改:`git commit -m "feat: add amazing feature"`
273
+ 4. 推送分支:`git push origin feature/amazing-feature`
274
+ 5. 创建 Pull Request
275
+
276
+ ### 开发环境设置
277
+
278
+ ```bash
279
+ # 克隆仓库
280
+ git clone https://gitee.com/done-coding/done-coding-cli.git
281
+ cd done-coding-cli/packages/git
282
+
283
+ # 安装依赖
284
+ pnpm install
285
+
286
+ # 开发模式
287
+ pnpm dev
288
+
289
+ # 构建
290
+ pnpm build
291
+
292
+ # 本地开发测试
293
+ node es/cli.mjs --help
294
+
295
+ # 注意:本地使用 node + 入口文件,发布后使用 bin 命令名
296
+ # 功能完全一致,只是调用方式不同
297
+ ```
298
+
299
+ ## 许可证
300
+
301
+ MIT © [JustSoSu](https://gitee.com/done-coding)
302
+
303
+ ## 包依赖关系
304
+
305
+ ### 为其他包提供服务
306
+
307
+ `@done-coding/cli-git` 的 `check` 命令专门为 `@done-coding/cli-config` 包提供 git 合并检测功能:
308
+
309
+ - **merge-lint 模块**: `dc-config` 包的 `merge-lint` 配置模块依赖 `dc-git check reverse-merge` 命令
310
+ - **反向合并检测**: 防止将高级分支(如 main/master)合并到低级分支(如 feature/develop)
311
+ - **集成使用**: 当 `dc-config` 检测工程化配置时,会调用 `dc-git check` 来验证 git 合并规范
312
+
313
+ ### 检测功能详解
314
+
315
+ #### `dc-git check reverse-merge`
316
+ 专为工程化配置提供的 git 合并规范检测:
317
+
318
+ ```bash
319
+ # 检测当前分支是否存在反向合并
320
+ dc-git check reverse-merge
321
+
322
+ # 该命令会检测:
323
+ # 1. 通过 git reflog 检测合并操作
324
+ # 2. 通过提交信息检测合并记录
325
+ # 3. 通过提交记录检测历史合并
326
+ # 4. 检测 rebase 操作的合规性
327
+ ```
328
+
329
+ **检测场景**:
330
+ - 防止 `main` 分支被合并到 `feature` 分支
331
+ - 防止 `develop` 分支被合并到个人开发分支
332
+ - 确保分支合并方向符合 Git Flow 规范
333
+
334
+ ## 相关链接
335
+
336
+ - [主 CLI 工具](https://www.npmjs.com/package/@done-coding/cli)
337
+ - [配置工具包](https://www.npmjs.com/package/@done-coding/cli-config) - 使用本包的检测功能
338
+ - [Gitee 仓库](https://gitee.com/done-coding/done-coding-cli)
339
+ - [更新日志](./CHANGELOG.md)
package/es/cli.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { c as m } from "./index-f436191c.js";
3
- import "./index-25cf06c1.js";
2
+ import { c as m } from "./index-6131addf.js";
3
+ import "./index-cab9d803.js";
4
4
  import "@done-coding/cli-utils";
5
5
  import "node:child_process";
6
6
  import "node:fs";
package/es/helpers.mjs CHANGED
@@ -1,29 +1,29 @@
1
1
  #!/usr/bin/env node
2
- import { g as s, G as n, a, h as m } from "./index-25cf06c1.js";
3
- import { xPrompts as e } from "@done-coding/cli-utils";
2
+ import { g as i, G as r, a as m, h as s } from "./index-cab9d803.js";
3
+ import { log as o, xPrompts as n } from "@done-coding/cli-utils";
4
4
  import "node:child_process";
5
5
  import "node:fs";
6
6
  import "node:path";
7
7
  import "@done-coding/request-axios";
8
8
  import "axios";
9
- const u = async (r) => {
10
- console.log("克隆done-coding系列项目"), console.log("选择平台:");
11
- const { platform: o } = await e(s(n.GITEE));
12
- console.log("选择用户名:");
13
- const { username: t } = await e(
14
- a(
9
+ const G = async (e) => {
10
+ o.info("克隆done-coding系列项目"), o.stage("选择平台:");
11
+ const { platform: t } = await n(i(r.GITEE));
12
+ o.stage("选择用户名:");
13
+ const { username: a } = await n(
14
+ m(
15
15
  {
16
- [n.GITHUB]: "done-coding",
17
- [n.GITEE]: "justsosu"
18
- }[o]
16
+ [r.GITHUB]: "done-coding",
17
+ [r.GITEE]: "justsosu"
18
+ }[t]
19
19
  )
20
20
  );
21
- console.log("platform:", o), console.log("username:", t), await m({
22
- platform: o,
23
- username: t,
24
- projectName: r
21
+ o.info("platform:", t), o.info("username:", a), await s({
22
+ platform: t,
23
+ username: a,
24
+ projectName: e
25
25
  });
26
26
  };
27
27
  export {
28
- u as cloneDoneCodingSeries
28
+ G as cloneDoneCodingSeries
29
29
  };
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { c as a, i as t } from "./index-25cf06c1.js";
2
+ import { c as a, i as t } from "./index-cab9d803.js";
3
3
  import { createMainCommand as r, createSubcommand as s } from "@done-coding/cli-utils";
4
4
  const {
5
5
  cliConfig: { moduleName: o }
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
- import { lookForParentTarget as Y, log as i, decryptAES as Z, encryptAES as W, xPrompts as d, HooksNameEnum as f, addHuskyHooks as ee, initHandlerCommon as te, getConfigFileCommonOptions as I, readConfigFile as R, getCurrentBranchName as se, getCommitByHookName as oe, resolveMergeInfoByGitReflogAction as re, checkCurrentIsRebasing as ne, resolveMergeInfoByCommitMsg as ce, getCurrentBranchLastCommitList as ae, getLastReflogList as ie, createSubcommand as ge, getRootScriptName as me } from "@done-coding/cli-utils";
2
+ import { lookForParentTarget as Y, log as i, decryptAES as Z, encryptAES as W, xPrompts as h, HooksNameEnum as p, addHuskyHooks as ee, initHandlerCommon as te, getConfigFileCommonOptions as I, readConfigFile as R, getCurrentBranchName as se, getCommitByHookName as oe, resolveMergeInfoByGitReflogAction as re, checkCurrentIsRebasing as ne, resolveMergeInfoByCommitMsg as ce, getCurrentBranchLastCommitList as ae, getLastReflogList as ie, createSubcommand as ge, getRootScriptName as me } from "@done-coding/cli-utils";
3
3
  import { execSync as N } from "node:child_process";
4
4
  import _ from "node:fs";
5
5
  import w from "node:path";
6
6
  import { createRequest as L } from "@done-coding/request-axios";
7
- import fe from "axios";
8
- var l = /* @__PURE__ */ ((e) => (e.INIT = "init", e.CLONE = "clone", e.HOOKS = "hooks", e.CHECK = "check", e))(l || {}), h = /* @__PURE__ */ ((e) => (e.DEFAULT = "default", e.CLONE_CONFIG = "cloneConfig", e))(h || {}), E = /* @__PURE__ */ ((e) => (e.GITHUB = "github", e.GITEE = "gitee", e))(E || {}), C = /* @__PURE__ */ ((e) => (e.REVERSE_MERGE = "reverseMerge", e))(C || {}), u = /* @__PURE__ */ ((e) => (e.REFLOG_ACTION = "reflog-action", e.COMMIT_MSG = "commit-msg", e.COMMIT_RECORD = "commit-record", e.PRE_REBASE = "pre-rebase", e))(u || {});
9
- const pe = 3e4, y = Math.random(), U = {
10
- timeout: pe,
7
+ import pe from "axios";
8
+ var l = /* @__PURE__ */ ((e) => (e.INIT = "init", e.CLONE = "clone", e.HOOKS = "hooks", e.CHECK = "check", e))(l || {}), d = /* @__PURE__ */ ((e) => (e.DEFAULT = "default", e.CLONE_CONFIG = "cloneConfig", e))(d || {}), E = /* @__PURE__ */ ((e) => (e.GITHUB = "github", e.GITEE = "gitee", e))(E || {}), C = /* @__PURE__ */ ((e) => (e.REVERSE_MERGE = "reverseMerge", e))(C || {}), u = /* @__PURE__ */ ((e) => (e.REFLOG_ACTION = "reflog-action", e.COMMIT_MSG = "commit-msg", e.COMMIT_RECORD = "commit-record", e.PRE_REBASE = "pre-rebase", e))(u || {});
9
+ const fe = 3e4, y = Math.random(), U = {
10
+ timeout: fe,
11
11
  getBusinessCode() {
12
12
  return y;
13
13
  },
@@ -18,7 +18,7 @@ const pe = 3e4, y = Math.random(), U = {
18
18
  return e.data;
19
19
  },
20
20
  businessSuccessCodeList: [y],
21
- axios: fe
21
+ axios: pe
22
22
  }, x = L({
23
23
  basePath: " https://gitee.com",
24
24
  ...U
@@ -46,7 +46,7 @@ const pe = 3e4, y = Math.random(), U = {
46
46
  }) => A({
47
47
  url: `/users/${e}/repos`,
48
48
  method: "GET"
49
- }), de = ({
49
+ }), he = ({
50
50
  accessToken: e
51
51
  }) => A({
52
52
  url: "/user/repos",
@@ -61,7 +61,7 @@ const pe = 3e4, y = Math.random(), U = {
61
61
  }
62
62
  }), T = {
63
63
  name: "@done-coding/cli-git",
64
- version: "0.6.11",
64
+ version: "0.6.13-alpha.0",
65
65
  description: "git跨平台操作命令行工具",
66
66
  bin: {
67
67
  "dc-git": "es/cli.mjs"
@@ -71,8 +71,8 @@ const pe = 3e4, y = Math.random(), U = {
71
71
  moduleName: "git"
72
72
  }
73
73
  }, {
74
- cliConfig: { namespaceDir: he, moduleName: Re }
75
- } = T, F = `./${he}/${Re}`, S = `${F}.json`, H = (e) => `${F}/.${e}`, D = ({ platform: e, username: t }) => `${e}/${t}`, Me = (e) => {
74
+ cliConfig: { namespaceDir: de, moduleName: Re }
75
+ } = T, F = `./${de}/${Re}`, S = `${F}.json`, H = (e) => `${F}/.${e}`, D = ({ platform: e, username: t }) => `${e}/${t}`, Me = (e) => {
76
76
  const { platform: t } = e, s = H(t), r = Y(s, {
77
77
  isFindFarthest: !1
78
78
  });
@@ -94,10 +94,10 @@ const pe = 3e4, y = Math.random(), U = {
94
94
  }) => {
95
95
  const o = H(s), n = JSON.stringify({
96
96
  accessToken: r
97
- }), g = D({ platform: s, username: t }), p = W({ text: n, secretKey: g }), a = w.join(e, o);
97
+ }), g = D({ platform: s, username: t }), f = W({ text: n, secretKey: g }), a = w.join(e, o);
98
98
  _.mkdirSync(w.dirname(a), {
99
99
  recursive: !0
100
- }), _.writeFileSync(a, p, "utf-8"), i.success(`配置信息保存成功 ${a}`);
100
+ }), _.writeFileSync(a, f, "utf-8"), i.success(`配置信息保存成功 ${a}`);
101
101
  }, B = [
102
102
  { title: "GitHub", value: E.GITHUB },
103
103
  { title: "Gitee", value: E.GITEE }
@@ -137,7 +137,7 @@ const pe = 3e4, y = Math.random(), U = {
137
137
  platform: e,
138
138
  username: t
139
139
  };
140
- e || (s.platform = (await d(v())).platform), t || (s.username = (await d(K())).username);
140
+ e || (s.platform = (await h(v())).platform), t || (s.username = (await h(K())).username);
141
141
  const { platform: r, username: o } = s;
142
142
  let c = [];
143
143
  const n = Me({
@@ -146,13 +146,13 @@ const pe = 3e4, y = Math.random(), U = {
146
146
  });
147
147
  let g = n == null ? void 0 : n.accessToken;
148
148
  i.stage(`正在获取${o}的${r}仓库列表...`);
149
- const p = {
149
+ const f = {
150
150
  username: o,
151
151
  accessToken: g
152
152
  };
153
153
  switch (s.platform) {
154
154
  case E.GITHUB: {
155
- c = (await (p.accessToken ? de : Ee)(p)).data.map((m) => ({
155
+ c = (await (f.accessToken ? he : Ee)(f)).data.map((m) => ({
156
156
  name: m.name,
157
157
  httpUrl: m.clone_url,
158
158
  sshUrl: m.ssh_url,
@@ -161,7 +161,7 @@ const pe = 3e4, y = Math.random(), U = {
161
161
  break;
162
162
  }
163
163
  case E.GITEE: {
164
- c = (await (p.accessToken ? ue : le)(p)).data.map((m) => ({
164
+ c = (await (f.accessToken ? ue : le)(f)).data.map((m) => ({
165
165
  name: m.name,
166
166
  httpUrl: m.html_url,
167
167
  sshUrl: m.ssh_url,
@@ -177,7 +177,7 @@ const pe = 3e4, y = Math.random(), U = {
177
177
  return;
178
178
  } else
179
179
  i.stage(`共${c.length}个仓库`);
180
- const { repoUrl: a } = await d({
180
+ const { repoUrl: a } = await h({
181
181
  name: "repoUrl",
182
182
  type: "select",
183
183
  message: "选择仓库",
@@ -188,20 +188,20 @@ const pe = 3e4, y = Math.random(), U = {
188
188
  });
189
189
  return a;
190
190
  }, _e = [
191
- f.PRE_COMMIT,
192
- f.PRE_MERGE_COMMIT,
193
- f.PREPARE_COMMIT_MSG,
194
- f.COMMIT_MSG,
195
- f.PRE_REBASE,
196
- f.POST_COMMIT,
197
- f.POST_MERGE,
198
- f.PRE_PUSH
191
+ p.PRE_COMMIT,
192
+ p.PRE_MERGE_COMMIT,
193
+ p.PREPARE_COMMIT_MSG,
194
+ p.COMMIT_MSG,
195
+ p.PRE_REBASE,
196
+ p.POST_COMMIT,
197
+ p.POST_MERGE,
198
+ p.PRE_PUSH
199
199
  ], Ie = [
200
- f.PRE_MERGE_COMMIT,
201
- f.PREPARE_COMMIT_MSG,
202
- f.POST_MERGE,
203
- f.PRE_PUSH,
204
- f.PRE_REBASE
200
+ p.PRE_MERGE_COMMIT,
201
+ p.PREPARE_COMMIT_MSG,
202
+ p.POST_MERGE,
203
+ p.PRE_PUSH,
204
+ p.PRE_REBASE
205
205
  ], $ = (e) => {
206
206
  const {
207
207
  [l.CHECK]: { [C.REVERSE_MERGE]: t }
@@ -214,7 +214,7 @@ const pe = 3e4, y = Math.random(), U = {
214
214
  (s, [r, { afterHash: o, logCount: c }]) => {
215
215
  let n = c - 1;
216
216
  if (o) {
217
- const g = t.findIndex((p) => p.hash === o);
217
+ const g = t.findIndex((f) => f.hash === o);
218
218
  g !== -1 && (i.info(
219
219
  `${r} 设置 只检测 ${o} 之后的日志 即 下标 [0 - ${g})`
220
220
  ), n = Math.min(n, g - 1));
@@ -257,15 +257,15 @@ const pe = 3e4, y = Math.random(), U = {
257
257
  type: {
258
258
  alias: "t",
259
259
  describe: "初始化类型",
260
- choices: [h.DEFAULT, h.CLONE_CONFIG],
261
- default: h.DEFAULT
260
+ choices: [d.DEFAULT, d.CLONE_CONFIG],
261
+ default: d.DEFAULT
262
262
  }
263
263
  }), ke = (e) => {
264
264
  N(`npm pkg set scripts.postprepare="${e} init"`);
265
265
  }, j = async (e) => {
266
266
  const { type: t } = e;
267
267
  switch (t) {
268
- case h.DEFAULT: {
268
+ case d.DEFAULT: {
269
269
  const { rootDir: s, isSubCommand: r, _: o } = e, c = `${e.$0}${r ? ` ${o[0]}` : ""}`;
270
270
  return await ee({
271
271
  hookNames: Ie,
@@ -277,8 +277,8 @@ const pe = 3e4, y = Math.random(), U = {
277
277
  }
278
278
  });
279
279
  }
280
- case h.CLONE_CONFIG: {
281
- const { rootDir: s } = e, { platform: r } = await d(v()), { username: o } = await d(K()), { accessToken: c } = await d($e);
280
+ case d.CLONE_CONFIG: {
281
+ const { rootDir: s } = e, { platform: r } = await h(v()), { username: o } = await h(K()), { accessToken: c } = await h($e);
282
282
  return Ce({
283
283
  rootDir: s,
284
284
  platform: r,
@@ -370,7 +370,7 @@ const pe = 3e4, y = Math.random(), U = {
370
370
  configMap: c,
371
371
  currentBranch: t
372
372
  })) {
373
- const { fromBranch: g, toBranch: p = t } = o, a = `禁止${g}被合并: ${g} => ${p}
373
+ const { fromBranch: g, toBranch: f = t } = o, a = `禁止${g}被合并: ${g} => ${f}
374
374
 
375
375
  --------- 建议 ---------
376
376
  可以通过
@@ -388,7 +388,7 @@ const pe = 3e4, y = Math.random(), U = {
388
388
  const s = $(e), r = Te(s);
389
389
  if (!r)
390
390
  return;
391
- const o = ae({ count: r }), c = Se(s, o), n = o.map((a) => a.hash), p = ie({
391
+ const o = ae({ count: r }), c = Se(s, o), n = o.map((a) => a.hash), f = ie({
392
392
  /** 考虑reflog存在往复切换 */
393
393
  count: r + 30,
394
394
  filterItem: (a) => n.includes(a.hash)
@@ -398,7 +398,7 @@ const pe = 3e4, y = Math.random(), U = {
398
398
  );
399
399
  o.forEach((a, m) => {
400
400
  var P;
401
- const O = a.mergeInfo || ((P = p[a.hash]) == null ? void 0 : P.mergeInfo);
401
+ const O = a.mergeInfo || ((P = f[a.hash]) == null ? void 0 : P.mergeInfo);
402
402
  O && Object.entries(s).forEach(([k]) => {
403
403
  const b = c[k];
404
404
  if (m > b) {
@@ -516,7 +516,7 @@ const pe = 3e4, y = Math.random(), U = {
516
516
  }), J = async (e) => {
517
517
  const { name: t, rootDir: s, args: r } = e;
518
518
  switch (t) {
519
- case f.PRE_MERGE_COMMIT: {
519
+ case p.PRE_MERGE_COMMIT: {
520
520
  const o = await R(e);
521
521
  M({
522
522
  config: o,
@@ -525,7 +525,7 @@ const pe = 3e4, y = Math.random(), U = {
525
525
  });
526
526
  break;
527
527
  }
528
- case f.PREPARE_COMMIT_MSG: {
528
+ case p.PREPARE_COMMIT_MSG: {
529
529
  const o = await R(e);
530
530
  M({
531
531
  config: o,
@@ -535,8 +535,8 @@ const pe = 3e4, y = Math.random(), U = {
535
535
  });
536
536
  break;
537
537
  }
538
- case f.POST_MERGE:
539
- case f.PRE_PUSH: {
538
+ case p.POST_MERGE:
539
+ case p.PRE_PUSH: {
540
540
  const o = await R(e);
541
541
  M({
542
542
  config: o,
@@ -545,7 +545,7 @@ const pe = 3e4, y = Math.random(), U = {
545
545
  });
546
546
  break;
547
547
  }
548
- case f.PRE_REBASE: {
548
+ case p.PRE_REBASE: {
549
549
  const o = await R(e);
550
550
  M({
551
551
  config: o,
@@ -591,7 +591,7 @@ const pe = 3e4, y = Math.random(), U = {
591
591
  export {
592
592
  C,
593
593
  E as G,
594
- h as I,
594
+ d as I,
595
595
  l as S,
596
596
  K as a,
597
597
  Oe as b,
package/es/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { o as t, C as l, G as d, I as c, S as C, m as p, l as f, f as h, h as u, c as k, b as I, n as E, k as b, j as H, e as g, d as y } from "./index-25cf06c1.js";
3
- import { a as T } from "./index-f436191c.js";
2
+ import { o as t, C as l, G as d, I as c, S as C, m as p, l as f, f as h, h as u, c as k, b as I, n as E, k as b, j as H, e as g, d as y } from "./index-cab9d803.js";
3
+ import { a as T } from "./index-6131addf.js";
4
4
  import "@done-coding/cli-utils";
5
5
  import "node:child_process";
6
6
  import "node:fs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@done-coding/cli-git",
3
- "version": "0.6.11",
3
+ "version": "0.6.13-alpha.0",
4
4
  "description": "git跨平台操作命令行工具",
5
5
  "private": false,
6
6
  "module": "es/index.mjs",
@@ -52,11 +52,11 @@
52
52
  "license": "MIT",
53
53
  "sideEffects": false,
54
54
  "devDependencies": {
55
- "@done-coding/cli-inject": "0.5.19",
55
+ "@done-coding/cli-inject": "0.5.21-alpha.0",
56
56
  "@types/node": "^18.0.0",
57
57
  "@types/yargs": "^17.0.28",
58
58
  "rimraf": "^6.0.1",
59
- "typescript": "^5.2.2",
59
+ "typescript": "^5.8.3",
60
60
  "vite": "^4.4.11",
61
61
  "vite-plugin-dts": "^3.6.0"
62
62
  },
@@ -64,9 +64,9 @@
64
64
  "node": ">=18.0.0"
65
65
  },
66
66
  "dependencies": {
67
- "@done-coding/cli-utils": "0.8.0",
67
+ "@done-coding/cli-utils": "0.8.2-alpha.0",
68
68
  "@done-coding/request-axios": "^1.2.2",
69
69
  "axios": "^1.8.4"
70
70
  },
71
- "gitHead": "e68f726aa899f75c4d294b11620f343c953a74c3"
71
+ "gitHead": "b09dd794f69ba2dafe22a3519d712d059c2eb376"
72
72
  }