batch-cmd
面向多仓库的批量 Git 操作与 GitLab 协同扩展。支持在一个工作区中对多个 Git 仓库批量切换分支、批量 Pull、批量创建 MR、批量合并、批量执行命令,并提供 GitLab Issues 视图与快捷操作。
功能特性
- Repos/Issues 视图(Source Control 下的
GitLab Issues)
- 展示你在 GitLab 上的待办 Issue 列表(范围可配置)
- 复制某个 Issue 的“已打开 MR 列表”到剪贴板
- 视图标题栏:刷新(箭头图标)、创建 Issue(加号图标)
- 底部状态栏批量操作按钮(左侧)
- $(git-branch) Switch All:批量切换所有仓库到选择的分支
- $(cloud-download) Pull All:批量拉取所有仓库
- $(git-pull-request) Create MRs:为选定 Issue 批量创建 MR(描述写入
Closes <reference>)
- $(git-merge) Merge All:批量将源分支合并到目标分支
- $(terminal) Run All:在所有仓库中并发执行自定义命令
- 并发执行:批量操作默认并发 4,可配置 1–16
安装与要求
- VS Code 版本:与
package.json -> engines.vscode 对齐
- 依赖扩展:
vscode.git(已在 extensionDependencies 声明)
- 系统环境:需要已安装 Git(供官方 Git 扩展使用)
- GitLab API:若使用 GitLab 相关功能,需要配置
baseUrl 与 token
快速开始
- 打开包含多个 Git 仓库的工作区。
- 在 Source Control 侧边栏找到
GitLab Issues 视图。
- 使用底部状态栏按钮执行批量操作:
- 切换分支:选择分支 → 居中模态确认 → 并发切换。
- Pull:居中模态确认 → 并发执行。
- Create MRs:选择源/目标分支与 Issue → 确认 → 为匹配仓库创建 MR。
- Merge All:选择源/目标分支 → 确认 → 批量合并。
- Run All:输入命令 → 居中模态确认 → 并发在各仓库终端执行。
配置项
batchCmd.concurrency:批量操作并发度(默认 4,范围 1–16)。
batchCmd.gitlab.baseUrl:GitLab 根地址(例如 https://gitlab.com)。
batchCmd.gitlab.token:访问 GitLab API 的 Token(建议使用 Personal Access Token,需 api 权限)。
batchCmd.gitlab.issueScope:Issues 范围(assigned_to_me、created_by_me、all)。
GitLab MR 说明
- 创建 MR 前自动检查:
- 源/目标分支是否存在本地。
- 源分支是否已推送到远端;未推送时尝试通过 Git 插件 API 执行
push。
- 是否已有相同源/目标的打开 MR(存在则跳过)。
- MR 描述写入:
Closes <reference>,其中 <reference> 为 Issue 的 Reference(如 group/project#123),GitLab 会自动建立关联与关闭规则。
状态栏命令
- Switch All / Pull All / Create MRs / Merge All / Run All
- 所有批量操作在执行前均会弹出居中模态确认框,仅“继续”按钮;关闭/ESC 视为取消。
常见问题(FAQ)
- 扩展按钮看不到?执行 “Developer: Reload Window”。
- 拉取失败 “Failed to execute git”?请确保系统已安装 Git 且 VS Code 能识别(设置中可配置
git.path)。
- 未显示仓库?确认 VS Code 的 Git 扩展已启用,且当前工作区存在 Git 仓库。
- GitLab 功能不可用?在设置中填入
batchCmd.gitlab.baseUrl 与 batchCmd.gitlab.token。
调试与发布
- 调试:F5 以 “Run Extension” 启动调试宿主;在
src/extension.ts 打断点。
- 构建:
npm run compile
- 打包发布:
vsce package / vsce publish(VS Code Marketplace),或 ovsx publish(OpenVSX)。
如需进一步增强(递归发现子仓库、更多 GitLab 自动化),欢迎提交 Issue。
| |