告别反复checkout:Superpowers并行开发Git Worktrees指南
【免费下载链接】superpowersAn agentic skills framework & software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowers
同时改三个功能,终端里来回 checkout、stash,每次切换还要重装依赖——Superpowers 的 Git Worktrees 技能把"隔离环境"这件事变成了自动流程。读完这篇,你能带走三条命令和一个判断表:开分支、验基线、收尾,各用在哪一步。
🧠 先看数据流:它怎么替你管工作区
核心机制是"先探测,再动手",四步走完:
三步探测环境状态
先跑git rev-parse --git-dir对比git-common-dir。两者不一致,说明你已经在某个工作树(worktree 是 Git 自带的多工作目录能力,多个目录各挂一个分支,共用同一个对象库)里,直接跳过创建;再排除一下子模块的干扰。
优先选平台原生工具
你的 IDE 或 Agent 如果有原生 worktree 工具,就用它,别手动跑git worktree——原生工具接管目录、分支和清理,绕开它会产生平台看不见的"幽灵状态"。
装依赖并验证基线
创建后自动识别package.json、Cargo.toml、pyproject.toml、go.mod,跑对应的安装命令,然后执行测试。测试通过才算就绪。
🚀 三个场景直接上手
场景一:给新分支开一个隔离目录。
git worktree add .worktrees/feature/auth -b feature/auth cd .worktrees/feature/auth预期输出:
Preparing worktree (new branch 'feature/auth') HEAD is now at 4a1c9f2 feat: merge payment fixes.worktrees/是项目根目录下的工作树存放目录,记得先确认它已被忽略。
场景二:新工作区的依赖与测试。
npm install npm test预期输出:
Worktree ready at /path/to/repo/.worktrees/feature/auth Tests passing (47 tests, 0 failures) Ready to implement auth feature场景三:分支收尾后清理。
git worktree remove .worktrees/feature/auth git worktree prune预期输出:
Deleted branch feature/auth (was 9b3e2d1).📋 一份表看懂怎么选
| 你的现状 | 推荐做法 |
|---|---|
| 已经在 worktree 里 | 别再套娃,直接用当前目录 |
| 有原生 worktree 工具 | 用它,跳过git worktree |
已有.worktrees/或worktrees/目录 | 复用;两个都有时选.worktrees/ |
| 目录没被 git 忽略 | 先写进.gitignore并提交,再创建 |
| 基线测试失败 | 报告失败,确认后才继续 |
| 沙箱拒绝创建 worktree | 降级在当前目录工作,如实说明 |
⚠️ 这四个坑别踩
工作树目录被提交了。现象:.worktrees/整个进了仓库。根因:目录没写进.gitignore。正确姿势:创建前跑git check-ignore -q .worktrees,没被忽略就补上并提交。
有原生工具还硬跑git worktree。现象:IDE 不认这个工作区,清理脚本找不到它。根因:绕过了平台的托管。正确姿势:原生工具优先,git 命令只是兜底。
跳过基线测试直接开工。现象:改完分不清测试失败是老问题还是新 bug。根因:起点就是脏的。正确姿势:先跑一遍测试,红了先问人再动手。
把失败当没看见。现象:带着红灯继续实现,最后一起炸。根因:把"新工作区"想得太干净了。正确姿势:失败时停下,让基线恢复绿色。
🔗 和它配合的上下游
- skills/brainstorming/:设计获批后自动调用本技能,为接下来的实现准备独立工作区。
- skills/subagent-driven-development/:子代理在 worktree 内执行具体任务,主分支不受影响。
- skills/executing-plans/:在隔离工作区里逐条落地实施计划。
- skills/finishing-a-development-branch/:收尾时给"合并 / 提 PR / 保留"三选项,并只清理自己创建的 worktree。
下一步清单
- 跑一遍 Step 0 探测命令,看看你当前目录到底是不是 worktree
- 把
.worktrees加进.gitignore,并确认git check-ignore通过 - 挑一个小分支走完整流程:创建 → 基线测试 → 合并 →
worktree remove
【免费下载链接】superpowersAn agentic skills framework & software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowers
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考