在需要与当前工作区隔离进行功能开发或执行实现计划前使用——创建独立的git worktree,支持智能目录选择和安全验证
使用 Git Worktrees.是一项面向实际任务的技能,主要用于Overview.;Git Worktrees 创建共享同一寄存器的孤立工作空间,允许同时进行多个分支的工作而不切换.;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Git worktrees 可创建共享同一仓库的隔离工作区,从而无需切换分支即可同时在多个分支上开展工作。
核心原则:系统化的目录选择 + 安全性验证 = 可靠的隔离。
起始时需声明:“我正在使用 using-git-worktrees 技能来设置一个隔离工作区。”
按以下优先级顺序执行:
# 按优先级顺序检查 ls -d .worktrees 2>/dev/null # 首选(隐藏目录) ls -d worktrees 2>/dev/null # 备选
若发现任一目录存在:直接使用该目录;若两者均存在,则以 .worktrees 为准。
grep -i "worktree.*director" CLAUDE.md 2>/dev/null
若其中明确指定了偏好路径:直接采用,无需额外询问。
若既无现有目录,CLAUDE.md 中也未指定偏好路径:
No worktree directory found. Where should I create worktrees? 1. .worktrees/ (project-local, hidden) 2. ~/.config/superpowers/worktrees// (global location) Which would you prefer?
.worktrees 或 worktrees)必须在创建 worktree 前验证目标目录是否已被忽略:
# 检查目录是否被忽略(尊重本地、全局及系统级 .gitignore) git check-ignore -q .worktrees 2>/dev/null || git check-ignore -q worktrees 2>/dev/null
若未被忽略:
依据 Jesse 的规则“立即修复损坏的事物”:
为何关键:防止意外将 worktree 内容提交至仓库。
~/.config/superpowers/worktrees)无需进行 .gitignore 验证——该路径完全位于项目之外。
project=$(basename "$(git rev-parse --show-toplevel)")
# 确定完整路径
case $LOCATION in
.worktrees|worktrees)
path="$LOCATION/$BRANCH_NAME"
;;
~/.config/superpowers/worktrees/*)
path="~/.config/superpowers/worktrees/$project/$BRANCH_NAME"
;;
esac
# 使用新分支创建 worktree
git worktree add "$path" -b "$BRANCH_NAME"
cd "$path"
自动识别并运行对应初始化流程:
# Node.js if [ -f package.json ]; then npm install; fi # Rust if [ -f Cargo.toml ]; then cargo build; fi # Python if [ -f requirements.txt ]; then pip install -r requirements.txt; fi if [ -f pyproject.toml ]; then poetry install; fi # Go if [ -f go.mod ]; then go mod download; fi
运行测试,确保 worktree 起始状态干净:
# 示例命令(请根据项目实际选用) npm test cargo test pytest go test ./...
若测试失败:报告失败详情,并询问是否继续或先排查问题。
若测试通过:报告就绪状态。
Worktree ready atTests passing ( tests, 0 failures) Ready to implement
| 情形 | 操作 |
|---|---|
.worktrees/ 已存在 |
使用该目录(需验证是否被忽略) |
worktrees/ 已存在 |
使用该目录(需验证是否被忽略) |
| 两者均存在 | 使用 .worktrees/ |
| 两者均不存在 | 检查 CLAUDE.md → 向用户询问 |
| 目录未被忽略 | 添加至 .gitignore 并提交 |
| 基线测试失败 | 报告失败 + 询问用户 |
| 无 package.json / Cargo.toml | 跳过依赖安装 |
git check-ignore 验证You: I'm using the using-git-worktrees skill to set up an isolated workspace. [Check .worktrees/ - exists] [Verify ignored - git check-ignore confirms .worktrees/ is ignored] [Create worktree: git worktree add .worktrees/auth -b feature/auth] [Run npm install] [Run npm test - 47 passing] Worktree ready at /Users/jesse/myproject/.worktrees/auth Tests passing (47 tests, 0 failures) Ready to implement auth feature
绝不允许:
必须做到:
调用方:
配套技能: