SuperAPI AI 工具集

using-git-worktrees

编程与开发

查看项目

更新于 10-16 09:47

技能介绍

用途:在开始需要与当前工作区隔离的功能开发或执行实现计划前,创建独立的工作树。Git worktree 让多个分支共享同一仓库并同时工作,无需反复切换分支;其核心原则是「系统化目录选择 + 安全校验 = 可靠隔离」。开始时应声明:"I'm using the using-git-worktrees skill to set up an isolated workspace."

目录选择:按优先级进行。先检查是否已有目录,依次执行 ls -d .worktrees 2>/dev/null 与 ls -d worktrees 2>/dev/null;若两者都存在,.worktrees 优先。其次检查 CLAUDE.md,执行 grep -i "worktree.*director" CLAUDE.md 2>/dev/null,若有偏好则直接使用、不再询问。若都没有,则询问用户选择 .worktrees/(项目内、隐藏)或 ~/.config/superpowers/worktrees/<project-name>/(全局位置)。

安全校验:对项目内目录(.worktrees 或 worktrees),创建前必须确认其被忽略,执行 git check-ignore -q .worktrees 2>/dev/null || git check-ignore -q worktrees 2>/dev/null。若未被忽略,应向 .gitignore 添加相应行并提交,再继续创建,以防工作树内容被误提交进仓库。全局目录位于项目之外,无需此校验。

创建步骤:先用 project=$(basename "$(git rev-parse --show-toplevel)") 检测项目名;再按位置确定完整路径并执行 git worktree add "$path" -b "$BRANCH_NAME",随后 cd "$path";接着自动检测并运行项目安装(package.json 用 npm install、Cargo.toml 用 cargo build、requirements.txt 用 pip install -r、pyproject.toml 用 poetry install、go.mod 用 go mod download);之后运行测试建立干净基线(如 npm test、cargo test、pytest、go test ./...);最后报告路径与测试结果。若测试失败,应报告失败并询问是继续还是排查。

适用与限制:适合需要隔离工作区的开发任务,常被 brainstorming 在实现阶段调用,并与 finishing-a-development-branch 搭配用于收尾清理。应避免跳过忽略校验、跳过基线测试、在测试失败时未经询问就继续、在目录不明确时臆断位置、跳过 CLAUDE.md 检查,以及硬编码安装命令。官方未提供更详细的平台或授权信息。