SuperAPI AI 工具集

git-worktree

编程与开发

查看项目

更新于 10-16 06:17

技能介绍

用途:管理 Git worktree,实现隔离的并行开发,适用于创建、列出、切换或清理 worktree,以及需要独立分支的场景。若任务运行在已有 worktree 中(已给定路径且未要求创建/移除/切换),则不适用创建流程,原地工作即可,可通过 git rev-parse --show-toplevel 是否出现在 git worktree list 的链接项中判断。

主要能力:必须始终使用 worktree-manager.sh 脚本,不能直接调用 git worktree add。脚本负责复制 .env 等环境文件、确保 .worktrees 写入 .gitignore、创建一致目录结构,并在创建后按检测到的清单安装依赖(package.json→npm install,composer.json→composer install,pyproject.toml→pip install -e .,go.mod→go mod download)。命令包括 create [--no-env] <branch> [from]、list/ls、switch <name>/go、copy-env <name>、cleanup <name>/clean。命令形式为 bash ${CLAUDE_PLUGIN_ROOT}/skills/ia-git-worktree/scripts/worktree-manager.sh <command>;若 CLAUDE_PLUGIN_ROOT 未设置,则相对技能目录解析脚本。

使用方式:创建前导出唯一 WORKTREE_SESSION_ID 并在本会话后续调用中沿用,例如 export WORKTREE_SESSION_ID="$(python3 -I -c 'import uuid; print(uuid.uuid4())')",管理器会在新 worktree 的 Git 元数据中记录归属。切换命令只打印绝对路径,调用方需将其作为 workdir,使用 env -C "$target" <command> 执行命令。对不可信来源(PR head、fork 或仅 origin 分支、第三方代码)应使用 --no-env,不复制环境文件并保持凭据隔离。

限制:清理会拒绝当前检出、其他会话的工作树以及存在已跟踪/未跟踪/忽略文件的工作树;自动复制的 .env 和已安装依赖需用户明确处理。创建前应验证 .worktrees 已被 gitignore(git check-ignore .worktrees),并确认使用可丢弃的测试数据库和服务目标。不要使用 git stash 进行红绿循环,因为链接的工作树共享同一 stash 栈。其他平台与版本兼容性暂未提供。