cbox-tool


Namecbox-tool JSON
Version 0.1.1 PyPI version JSON
download
home_pagehttps://github.com/beliefgp/mybox
SummaryA powerful multi-repository management tool for Git projects
upload_time2024-12-17 03:20:59
maintainerNone
docs_urlNone
authorbelief
requires_python>=3.8
licenseNone
keywords git repository management tool workspace
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # cbox

cbox 是一个强大的多仓库管理工具,帮助您更好地组织和管理多个 Git 仓库。它支持工作空间管理、批量操作、分支管理等功能,让多仓库管理变得简单高效。

## 特性

- **工作空间管理**
  - 创建和管理多个工作空间
  - 导入现有仓库
  - 初始化新仓库
  - 扫描并批量导入仓库
  - 删除工作空间及其所有内容

- **仓库操作**
  - 克隆远程仓库
  - 删除工作空间中的仓库
  - 批量执行 git 操作(pull、push、commit)
  - 查看仓库状态
  - 导入本地仓库

- **分支管理**
  - 创建、切换、删除分支
  - 合并分支
  - 查看分支状态
  - 批量分支操作

## 安装

### 方法 1:从 PyPI 安装(推荐)

```bash
pip install cbox-tool
```

### 方法 2:从源码安装

1. 克隆仓库:
```bash
git clone https://github.com/yourusername/cbox.git
cd cbox
```

2. 安装依赖:
```bash
pip install -e .
```

## 快速开始

1. 创建工作空间:
```bash
cbox workspace add dev ~/projects/dev
```

2. 克隆仓库到工作空间:
```bash
cbox clone dev https://github.com/user/repo.git
```

3. 查看工作空间状态:
```bash
cbox status dev
```

## 基本用法

### 工作空间管理
```bash
# 列出所有工作空间
cbox workspace list

# 删除工作空间
cbox remove-workspace dev
```

### 仓库操作
```bash
# 导入本地仓库
cbox import dev ~/existing-repo

# 初始化新仓库
cbox init dev new-project

# 扫描并导入目录下的所有 Git 仓库
cbox scan-import dev ~/old-projects

# 删除仓库
cbox remove-repo dev repo-name
```

### Git 操作
```bash
# 拉取更新
cbox pull dev

# 提交更改
cbox commit dev -m "feat: add new feature"

# 推送更改
cbox push dev
```

### 分支管理
```bash
# 列出分支
cbox branch list dev

# 创建新分支
cbox branch create dev feature/new-feature

# 切换分支
cbox branch switch dev feature/new-feature

# 删除分支
cbox branch delete dev feature/old-feature
```

## 详细使用说明

### 工作空间管理

```bash
# 添加工作空间
cbox add workspace1 ~/projects/workspace1

# 列出所有工作空间
cbox list

# 导入现有仓库
cbox import-repo workspace1 ~/existing-repo

# 初始化新仓库
cbox init workspace1 new-project

# 扫描并导入仓库
cbox scan-import workspace1 ~/projects

# 删除工作空间
cbox remove-workspace workspace1
```

### 仓库操作

```bash
# 查看状态
cbox status workspace1

# 拉取更新
cbox pull workspace1

# 提交更改
cbox commit workspace1 "feat: add new feature"

# 推送更改
cbox push workspace1

# 删除仓库
cbox remove-repo workspace1 repo-name
```

### 分支管理

```bash
# 查看分支
cbox branches workspace1

# 创建分支
cbox create-branch workspace1 feature/new-feature

# 切换分支
cbox switch workspace1 feature/new-feature

# 合并分支
cbox merge workspace1 feature/new-feature

# 删除分支
cbox delete-branch workspace1 feature/new-feature
```

### 批量切换分支

使用 `switch` 命令可以同时切换工作空间中所有仓库的分支。如果本地分支不存在,会自动检查远程仓库:

```bash
# 切换到指定分支
cbox switch dev feature/new-ui
```

切换分支时会显示详细的操作结果:

```
切换分支结果:
仓库      原分支    目标分支         状态
repo1    main     feature/new-ui   已切换
repo2    main     feature/new-ui   已在该分支
repo3    dev      feature/new-ui   有未提交的更改
repo4    main     feature/new-ui   分支不存在(本地和远程)
```

分支切换过程:
1. 检查本地是否存在目标分支
2. 如果本地不存在:
   - 从远程获取最新更新
   - 检查远程是否有对应分支
   - 如果远程分支存在,创建本地分支并设置跟踪
3. 检查是否有未提交的更改
4. 执行分支切换

状态说明:
- `已切换`:成功切换到目标分支
- `已在该分支`:当前已经在目标分支上
- `有未提交的更改`:有未保存的修改,需要先提交或暂存
- `分支不存在(本地和远程)`:本地和远程都没有找到目标分支
- `错误: [具体原因]`:其他错误(如权限问题等)

## 命令参考

### 核心命令

- `add`: 添加新的工作空间
- `list`: 列出所有工作空间
- `clone`: 克隆远程仓库
- `import-repo`: 导入本地仓库
- `init`: 初始化新仓库
- `scan-import`: 扫描并导入仓库
- `remove-workspace`: 删除工作空间
- `remove-repo`: 删除仓库

### 仓库操作命令

- `status`: 查看仓库状态
- `pull`: 拉取更新
- `push`: 推送更改
- `commit`: 提交更改

### 分支管理命令

- `branches`: 列出所有分支
- `create-branch`: 创建新分支
- `switch`: 切换分支
- `merge`: 合并分支
- `delete-branch`: 删除分支

## 配置文件

cbox 使用 `~/.cbox.yaml` 存储配置信息。配置文件格式如下:

```yaml
workspace1: /path/to/workspace1
workspace2: /path/to/workspace2
```

## 最佳实践

1. **工作空间组织**
   - 按项目类型组织工作空间
   - 相关的仓库放在同一个工作空间
   - 使用有意义的工作空间名称

2. **批量操作**
   - 使用状态命令检查更改
   - 批量提交前确认消息
   - 定期同步所有仓库

3. **分支管理**
   - 遵循一致的分支命名规范
   - 及时清理已合并的分支
   - 使用有意义的提交消息

## 常见问题

1. **Q: 如何移动仓库到其他工作空间?**
   A: 使用 `import-repo` 命令将仓库导入到新的工作空间。

2. **Q: 如何处理合并冲突?**
   A: cbox 会在合并时提示冲突,需要手动解决冲突后再次提交。

3. **Q: 如何更新 cbox?**
   A: 使用 `pip install -e .` 重新安装最新版本。

## 贡献

欢迎贡献代码和提出建议!请遵循以下步骤:

1. Fork 仓库
2. 创建特性分支
3. 提交更改
4. 推送到分支
5. 创建 Pull Request

## 许可证

MIT License

## 命令输出说明

### 工作空间列表
```
名称    路径                状态
dev     ~/projects/dev     活动
work    ~/workspace        未找到
```

### 仓库状态
```
仓库        分支    状态      未跟踪
repo1      main    clean     0
repo2      dev     有更改    2
```

### 分支列表
```
repo1
分支名     当前    远程跟踪      最后提交
main      ✓      origin/main   feat: add new feature
develop          origin/dev    fix: update dependencies

repo2
分支名     当前    远程跟踪      最后提交
main      ✓      origin/main   docs: update README
```

## 错误处理

cbox 提供清晰的错误提示:

- 导入已存在的仓库:
  ```
  错误: 目标路径 '/path/to/workspace/existing-repo' 已存在
  ```

- 扫描导入结果:
  ```
  扫描完成:
  ✓ 成功导入: 2 个仓库
  - 已存在: 1 个仓库
  ✗ 导入失败: 1 个仓库

  失败详情:
    - /path/to/repo: 错误原因
  ```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/beliefgp/mybox",
    "name": "cbox-tool",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "git repository management tool workspace",
    "author": "belief",
    "author_email": "belief.bian@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/fc/7b/b5a4ba6cbd080492431134f630f76db65ce0259d15c76144328721c8a808/cbox_tool-0.1.1.tar.gz",
    "platform": null,
    "description": "# cbox\n\ncbox \u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u591a\u4ed3\u5e93\u7ba1\u7406\u5de5\u5177\uff0c\u5e2e\u52a9\u60a8\u66f4\u597d\u5730\u7ec4\u7ec7\u548c\u7ba1\u7406\u591a\u4e2a Git \u4ed3\u5e93\u3002\u5b83\u652f\u6301\u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406\u3001\u6279\u91cf\u64cd\u4f5c\u3001\u5206\u652f\u7ba1\u7406\u7b49\u529f\u80fd\uff0c\u8ba9\u591a\u4ed3\u5e93\u7ba1\u7406\u53d8\u5f97\u7b80\u5355\u9ad8\u6548\u3002\n\n## \u7279\u6027\n\n- **\u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406**\n  - \u521b\u5efa\u548c\u7ba1\u7406\u591a\u4e2a\u5de5\u4f5c\u7a7a\u95f4\n  - \u5bfc\u5165\u73b0\u6709\u4ed3\u5e93\n  - \u521d\u59cb\u5316\u65b0\u4ed3\u5e93\n  - \u626b\u63cf\u5e76\u6279\u91cf\u5bfc\u5165\u4ed3\u5e93\n  - \u5220\u9664\u5de5\u4f5c\u7a7a\u95f4\u53ca\u5176\u6240\u6709\u5185\u5bb9\n\n- **\u4ed3\u5e93\u64cd\u4f5c**\n  - \u514b\u9686\u8fdc\u7a0b\u4ed3\u5e93\n  - \u5220\u9664\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u4ed3\u5e93\n  - \u6279\u91cf\u6267\u884c git \u64cd\u4f5c\uff08pull\u3001push\u3001commit\uff09\n  - \u67e5\u770b\u4ed3\u5e93\u72b6\u6001\n  - \u5bfc\u5165\u672c\u5730\u4ed3\u5e93\n\n- **\u5206\u652f\u7ba1\u7406**\n  - \u521b\u5efa\u3001\u5207\u6362\u3001\u5220\u9664\u5206\u652f\n  - \u5408\u5e76\u5206\u652f\n  - \u67e5\u770b\u5206\u652f\u72b6\u6001\n  - \u6279\u91cf\u5206\u652f\u64cd\u4f5c\n\n## \u5b89\u88c5\n\n### \u65b9\u6cd5 1\uff1a\u4ece PyPI \u5b89\u88c5\uff08\u63a8\u8350\uff09\n\n```bash\npip install cbox-tool\n```\n\n### \u65b9\u6cd5 2\uff1a\u4ece\u6e90\u7801\u5b89\u88c5\n\n1. \u514b\u9686\u4ed3\u5e93\uff1a\n```bash\ngit clone https://github.com/yourusername/cbox.git\ncd cbox\n```\n\n2. \u5b89\u88c5\u4f9d\u8d56\uff1a\n```bash\npip install -e .\n```\n\n## \u5feb\u901f\u5f00\u59cb\n\n1. \u521b\u5efa\u5de5\u4f5c\u7a7a\u95f4\uff1a\n```bash\ncbox workspace add dev ~/projects/dev\n```\n\n2. \u514b\u9686\u4ed3\u5e93\u5230\u5de5\u4f5c\u7a7a\u95f4\uff1a\n```bash\ncbox clone dev https://github.com/user/repo.git\n```\n\n3. \u67e5\u770b\u5de5\u4f5c\u7a7a\u95f4\u72b6\u6001\uff1a\n```bash\ncbox status dev\n```\n\n## \u57fa\u672c\u7528\u6cd5\n\n### \u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406\n```bash\n# \u5217\u51fa\u6240\u6709\u5de5\u4f5c\u7a7a\u95f4\ncbox workspace list\n\n# \u5220\u9664\u5de5\u4f5c\u7a7a\u95f4\ncbox remove-workspace dev\n```\n\n### \u4ed3\u5e93\u64cd\u4f5c\n```bash\n# \u5bfc\u5165\u672c\u5730\u4ed3\u5e93\ncbox import dev ~/existing-repo\n\n# \u521d\u59cb\u5316\u65b0\u4ed3\u5e93\ncbox init dev new-project\n\n# \u626b\u63cf\u5e76\u5bfc\u5165\u76ee\u5f55\u4e0b\u7684\u6240\u6709 Git \u4ed3\u5e93\ncbox scan-import dev ~/old-projects\n\n# \u5220\u9664\u4ed3\u5e93\ncbox remove-repo dev repo-name\n```\n\n### Git \u64cd\u4f5c\n```bash\n# \u62c9\u53d6\u66f4\u65b0\ncbox pull dev\n\n# \u63d0\u4ea4\u66f4\u6539\ncbox commit dev -m \"feat: add new feature\"\n\n# \u63a8\u9001\u66f4\u6539\ncbox push dev\n```\n\n### \u5206\u652f\u7ba1\u7406\n```bash\n# \u5217\u51fa\u5206\u652f\ncbox branch list dev\n\n# \u521b\u5efa\u65b0\u5206\u652f\ncbox branch create dev feature/new-feature\n\n# \u5207\u6362\u5206\u652f\ncbox branch switch dev feature/new-feature\n\n# \u5220\u9664\u5206\u652f\ncbox branch delete dev feature/old-feature\n```\n\n## \u8be6\u7ec6\u4f7f\u7528\u8bf4\u660e\n\n### \u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406\n\n```bash\n# \u6dfb\u52a0\u5de5\u4f5c\u7a7a\u95f4\ncbox add workspace1 ~/projects/workspace1\n\n# \u5217\u51fa\u6240\u6709\u5de5\u4f5c\u7a7a\u95f4\ncbox list\n\n# \u5bfc\u5165\u73b0\u6709\u4ed3\u5e93\ncbox import-repo workspace1 ~/existing-repo\n\n# \u521d\u59cb\u5316\u65b0\u4ed3\u5e93\ncbox init workspace1 new-project\n\n# \u626b\u63cf\u5e76\u5bfc\u5165\u4ed3\u5e93\ncbox scan-import workspace1 ~/projects\n\n# \u5220\u9664\u5de5\u4f5c\u7a7a\u95f4\ncbox remove-workspace workspace1\n```\n\n### \u4ed3\u5e93\u64cd\u4f5c\n\n```bash\n# \u67e5\u770b\u72b6\u6001\ncbox status workspace1\n\n# \u62c9\u53d6\u66f4\u65b0\ncbox pull workspace1\n\n# \u63d0\u4ea4\u66f4\u6539\ncbox commit workspace1 \"feat: add new feature\"\n\n# \u63a8\u9001\u66f4\u6539\ncbox push workspace1\n\n# \u5220\u9664\u4ed3\u5e93\ncbox remove-repo workspace1 repo-name\n```\n\n### \u5206\u652f\u7ba1\u7406\n\n```bash\n# \u67e5\u770b\u5206\u652f\ncbox branches workspace1\n\n# \u521b\u5efa\u5206\u652f\ncbox create-branch workspace1 feature/new-feature\n\n# \u5207\u6362\u5206\u652f\ncbox switch workspace1 feature/new-feature\n\n# \u5408\u5e76\u5206\u652f\ncbox merge workspace1 feature/new-feature\n\n# \u5220\u9664\u5206\u652f\ncbox delete-branch workspace1 feature/new-feature\n```\n\n### \u6279\u91cf\u5207\u6362\u5206\u652f\n\n\u4f7f\u7528 `switch` \u547d\u4ee4\u53ef\u4ee5\u540c\u65f6\u5207\u6362\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6240\u6709\u4ed3\u5e93\u7684\u5206\u652f\u3002\u5982\u679c\u672c\u5730\u5206\u652f\u4e0d\u5b58\u5728\uff0c\u4f1a\u81ea\u52a8\u68c0\u67e5\u8fdc\u7a0b\u4ed3\u5e93\uff1a\n\n```bash\n# \u5207\u6362\u5230\u6307\u5b9a\u5206\u652f\ncbox switch dev feature/new-ui\n```\n\n\u5207\u6362\u5206\u652f\u65f6\u4f1a\u663e\u793a\u8be6\u7ec6\u7684\u64cd\u4f5c\u7ed3\u679c\uff1a\n\n```\n\u5207\u6362\u5206\u652f\u7ed3\u679c:\n\u4ed3\u5e93      \u539f\u5206\u652f    \u76ee\u6807\u5206\u652f         \u72b6\u6001\nrepo1    main     feature/new-ui   \u5df2\u5207\u6362\nrepo2    main     feature/new-ui   \u5df2\u5728\u8be5\u5206\u652f\nrepo3    dev      feature/new-ui   \u6709\u672a\u63d0\u4ea4\u7684\u66f4\u6539\nrepo4    main     feature/new-ui   \u5206\u652f\u4e0d\u5b58\u5728\uff08\u672c\u5730\u548c\u8fdc\u7a0b\uff09\n```\n\n\u5206\u652f\u5207\u6362\u8fc7\u7a0b\uff1a\n1. \u68c0\u67e5\u672c\u5730\u662f\u5426\u5b58\u5728\u76ee\u6807\u5206\u652f\n2. \u5982\u679c\u672c\u5730\u4e0d\u5b58\u5728\uff1a\n   - \u4ece\u8fdc\u7a0b\u83b7\u53d6\u6700\u65b0\u66f4\u65b0\n   - \u68c0\u67e5\u8fdc\u7a0b\u662f\u5426\u6709\u5bf9\u5e94\u5206\u652f\n   - \u5982\u679c\u8fdc\u7a0b\u5206\u652f\u5b58\u5728\uff0c\u521b\u5efa\u672c\u5730\u5206\u652f\u5e76\u8bbe\u7f6e\u8ddf\u8e2a\n3. \u68c0\u67e5\u662f\u5426\u6709\u672a\u63d0\u4ea4\u7684\u66f4\u6539\n4. \u6267\u884c\u5206\u652f\u5207\u6362\n\n\u72b6\u6001\u8bf4\u660e\uff1a\n- `\u5df2\u5207\u6362`\uff1a\u6210\u529f\u5207\u6362\u5230\u76ee\u6807\u5206\u652f\n- `\u5df2\u5728\u8be5\u5206\u652f`\uff1a\u5f53\u524d\u5df2\u7ecf\u5728\u76ee\u6807\u5206\u652f\u4e0a\n- `\u6709\u672a\u63d0\u4ea4\u7684\u66f4\u6539`\uff1a\u6709\u672a\u4fdd\u5b58\u7684\u4fee\u6539\uff0c\u9700\u8981\u5148\u63d0\u4ea4\u6216\u6682\u5b58\n- `\u5206\u652f\u4e0d\u5b58\u5728\uff08\u672c\u5730\u548c\u8fdc\u7a0b\uff09`\uff1a\u672c\u5730\u548c\u8fdc\u7a0b\u90fd\u6ca1\u6709\u627e\u5230\u76ee\u6807\u5206\u652f\n- `\u9519\u8bef: [\u5177\u4f53\u539f\u56e0]`\uff1a\u5176\u4ed6\u9519\u8bef\uff08\u5982\u6743\u9650\u95ee\u9898\u7b49\uff09\n\n## \u547d\u4ee4\u53c2\u8003\n\n### \u6838\u5fc3\u547d\u4ee4\n\n- `add`: \u6dfb\u52a0\u65b0\u7684\u5de5\u4f5c\u7a7a\u95f4\n- `list`: \u5217\u51fa\u6240\u6709\u5de5\u4f5c\u7a7a\u95f4\n- `clone`: \u514b\u9686\u8fdc\u7a0b\u4ed3\u5e93\n- `import-repo`: \u5bfc\u5165\u672c\u5730\u4ed3\u5e93\n- `init`: \u521d\u59cb\u5316\u65b0\u4ed3\u5e93\n- `scan-import`: \u626b\u63cf\u5e76\u5bfc\u5165\u4ed3\u5e93\n- `remove-workspace`: \u5220\u9664\u5de5\u4f5c\u7a7a\u95f4\n- `remove-repo`: \u5220\u9664\u4ed3\u5e93\n\n### \u4ed3\u5e93\u64cd\u4f5c\u547d\u4ee4\n\n- `status`: \u67e5\u770b\u4ed3\u5e93\u72b6\u6001\n- `pull`: \u62c9\u53d6\u66f4\u65b0\n- `push`: \u63a8\u9001\u66f4\u6539\n- `commit`: \u63d0\u4ea4\u66f4\u6539\n\n### \u5206\u652f\u7ba1\u7406\u547d\u4ee4\n\n- `branches`: \u5217\u51fa\u6240\u6709\u5206\u652f\n- `create-branch`: \u521b\u5efa\u65b0\u5206\u652f\n- `switch`: \u5207\u6362\u5206\u652f\n- `merge`: \u5408\u5e76\u5206\u652f\n- `delete-branch`: \u5220\u9664\u5206\u652f\n\n## \u914d\u7f6e\u6587\u4ef6\n\ncbox \u4f7f\u7528 `~/.cbox.yaml` \u5b58\u50a8\u914d\u7f6e\u4fe1\u606f\u3002\u914d\u7f6e\u6587\u4ef6\u683c\u5f0f\u5982\u4e0b\uff1a\n\n```yaml\nworkspace1: /path/to/workspace1\nworkspace2: /path/to/workspace2\n```\n\n## \u6700\u4f73\u5b9e\u8df5\n\n1. **\u5de5\u4f5c\u7a7a\u95f4\u7ec4\u7ec7**\n   - \u6309\u9879\u76ee\u7c7b\u578b\u7ec4\u7ec7\u5de5\u4f5c\u7a7a\u95f4\n   - \u76f8\u5173\u7684\u4ed3\u5e93\u653e\u5728\u540c\u4e00\u4e2a\u5de5\u4f5c\u7a7a\u95f4\n   - \u4f7f\u7528\u6709\u610f\u4e49\u7684\u5de5\u4f5c\u7a7a\u95f4\u540d\u79f0\n\n2. **\u6279\u91cf\u64cd\u4f5c**\n   - \u4f7f\u7528\u72b6\u6001\u547d\u4ee4\u68c0\u67e5\u66f4\u6539\n   - \u6279\u91cf\u63d0\u4ea4\u524d\u786e\u8ba4\u6d88\u606f\n   - \u5b9a\u671f\u540c\u6b65\u6240\u6709\u4ed3\u5e93\n\n3. **\u5206\u652f\u7ba1\u7406**\n   - \u9075\u5faa\u4e00\u81f4\u7684\u5206\u652f\u547d\u540d\u89c4\u8303\n   - \u53ca\u65f6\u6e05\u7406\u5df2\u5408\u5e76\u7684\u5206\u652f\n   - \u4f7f\u7528\u6709\u610f\u4e49\u7684\u63d0\u4ea4\u6d88\u606f\n\n## \u5e38\u89c1\u95ee\u9898\n\n1. **Q: \u5982\u4f55\u79fb\u52a8\u4ed3\u5e93\u5230\u5176\u4ed6\u5de5\u4f5c\u7a7a\u95f4\uff1f**\n   A: \u4f7f\u7528 `import-repo` \u547d\u4ee4\u5c06\u4ed3\u5e93\u5bfc\u5165\u5230\u65b0\u7684\u5de5\u4f5c\u7a7a\u95f4\u3002\n\n2. **Q: \u5982\u4f55\u5904\u7406\u5408\u5e76\u51b2\u7a81\uff1f**\n   A: cbox \u4f1a\u5728\u5408\u5e76\u65f6\u63d0\u793a\u51b2\u7a81\uff0c\u9700\u8981\u624b\u52a8\u89e3\u51b3\u51b2\u7a81\u540e\u518d\u6b21\u63d0\u4ea4\u3002\n\n3. **Q: \u5982\u4f55\u66f4\u65b0 cbox\uff1f**\n   A: \u4f7f\u7528 `pip install -e .` \u91cd\u65b0\u5b89\u88c5\u6700\u65b0\u7248\u672c\u3002\n\n## \u8d21\u732e\n\n\u6b22\u8fce\u8d21\u732e\u4ee3\u7801\u548c\u63d0\u51fa\u5efa\u8bae\uff01\u8bf7\u9075\u5faa\u4ee5\u4e0b\u6b65\u9aa4\uff1a\n\n1. Fork \u4ed3\u5e93\n2. \u521b\u5efa\u7279\u6027\u5206\u652f\n3. \u63d0\u4ea4\u66f4\u6539\n4. \u63a8\u9001\u5230\u5206\u652f\n5. \u521b\u5efa Pull Request\n\n## \u8bb8\u53ef\u8bc1\n\nMIT License\n\n## \u547d\u4ee4\u8f93\u51fa\u8bf4\u660e\n\n### \u5de5\u4f5c\u7a7a\u95f4\u5217\u8868\n```\n\u540d\u79f0    \u8def\u5f84                \u72b6\u6001\ndev     ~/projects/dev     \u6d3b\u52a8\nwork    ~/workspace        \u672a\u627e\u5230\n```\n\n### \u4ed3\u5e93\u72b6\u6001\n```\n\u4ed3\u5e93        \u5206\u652f    \u72b6\u6001      \u672a\u8ddf\u8e2a\nrepo1      main    clean     0\nrepo2      dev     \u6709\u66f4\u6539    2\n```\n\n### \u5206\u652f\u5217\u8868\n```\nrepo1\n\u5206\u652f\u540d     \u5f53\u524d    \u8fdc\u7a0b\u8ddf\u8e2a      \u6700\u540e\u63d0\u4ea4\nmain      \u2713      origin/main   feat: add new feature\ndevelop          origin/dev    fix: update dependencies\n\nrepo2\n\u5206\u652f\u540d     \u5f53\u524d    \u8fdc\u7a0b\u8ddf\u8e2a      \u6700\u540e\u63d0\u4ea4\nmain      \u2713      origin/main   docs: update README\n```\n\n## \u9519\u8bef\u5904\u7406\n\ncbox \u63d0\u4f9b\u6e05\u6670\u7684\u9519\u8bef\u63d0\u793a\uff1a\n\n- \u5bfc\u5165\u5df2\u5b58\u5728\u7684\u4ed3\u5e93\uff1a\n  ```\n  \u9519\u8bef: \u76ee\u6807\u8def\u5f84 '/path/to/workspace/existing-repo' \u5df2\u5b58\u5728\n  ```\n\n- \u626b\u63cf\u5bfc\u5165\u7ed3\u679c\uff1a\n  ```\n  \u626b\u63cf\u5b8c\u6210:\n  \u2713 \u6210\u529f\u5bfc\u5165: 2 \u4e2a\u4ed3\u5e93\n  - \u5df2\u5b58\u5728: 1 \u4e2a\u4ed3\u5e93\n  \u2717 \u5bfc\u5165\u5931\u8d25: 1 \u4e2a\u4ed3\u5e93\n\n  \u5931\u8d25\u8be6\u60c5:\n    - /path/to/repo: \u9519\u8bef\u539f\u56e0\n  ```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A powerful multi-repository management tool for Git projects",
    "version": "0.1.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/beliefgp/mybox/issues",
        "Documentation": "https://github.com/beliefgp/mybox/tree/main/docs",
        "Homepage": "https://github.com/beliefgp/mybox",
        "Source Code": "https://github.com/beliefgp/mybox"
    },
    "split_keywords": [
        "git",
        "repository",
        "management",
        "tool",
        "workspace"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b4d795cc18922e74981082d2633957e4fe407b5f09efcaa9983fcb3dfa5e11cc",
                "md5": "007c0dcddac70956395d77b6574a72d8",
                "sha256": "eafd8b96f8523af120e4aa477c6084a3294dda3bce56bd8979c1f3c5611f620e"
            },
            "downloads": -1,
            "filename": "cbox_tool-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "007c0dcddac70956395d77b6574a72d8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 10381,
            "upload_time": "2024-12-17T03:20:54",
            "upload_time_iso_8601": "2024-12-17T03:20:54.750333Z",
            "url": "https://files.pythonhosted.org/packages/b4/d7/95cc18922e74981082d2633957e4fe407b5f09efcaa9983fcb3dfa5e11cc/cbox_tool-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fc7bb5a4ba6cbd080492431134f630f76db65ce0259d15c76144328721c8a808",
                "md5": "d5005245408a7f2d3c114028725addb3",
                "sha256": "c26b2bd4bc121cb7c65ada846ef2b9fe0411d284a9c11e24e54db45fa7b857b6"
            },
            "downloads": -1,
            "filename": "cbox_tool-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "d5005245408a7f2d3c114028725addb3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 12140,
            "upload_time": "2024-12-17T03:20:59",
            "upload_time_iso_8601": "2024-12-17T03:20:59.938319Z",
            "url": "https://files.pythonhosted.org/packages/fc/7b/b5a4ba6cbd080492431134f630f76db65ce0259d15c76144328721c8a808/cbox_tool-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-17 03:20:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "beliefgp",
    "github_project": "mybox",
    "github_not_found": true,
    "lcname": "cbox-tool"
}
        
Elapsed time: 0.40351s