如何用 Claude Code 摆脱"切分支切到崩溃":Superpowers Git 工作树使用指南
【免费下载链接】superpowersAn agentic skills framework & software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowers
功能改到一半,PM 又丢了个急 bug 过来。直接提交吧不干净,stash 再切吧回头还得天天收拾烂摊子。Superpowers——一套 Claude Code 核心技能库——给出的答案是:让 AI 替你自动创建 Git 工作树,一个新任务就开一个新目录,多分支并行开发,git stash的咒语从此可以退役。
一个工作树是怎么被自动建出来的
看个真实片段。周三下午,我在主分支上修 UI bug,刚改到一半,来了个必须今天修完的登录报错。我对 Claude Code 说"开始做这个 bug",skills/using-git-worktrees/SKILL.md这个技能就开始跑了:它先确认当前是不是已经在隔离工作区里,确认没有之后,只问了我一句——要不要开工作树?我点头。
接着它自己决定目录放哪:先看项目里有没有现成的.worktrees或worktrees目录,如果我在 CLAUDE.md 里写过偏好的位置就直接按那个来,两者都没有就用默认的.worktrees/bugfix-login,顺手建了bugfix/login分支。这个新目录是同一个仓库的第二份"检出",主分支上未提交的改动纹丝不动,两个 bug 各占一个目录互不打扰。
建完它还不撒手:识别出这是 Node 项目就装一遍依赖,然后跑一轮测试当"基线"——有测试挂了就先报给我,问清楚要不要继续,绝不把问题悄悄带进新分支。最后我拿到一句话汇报:工作树在哪个路径、测试全绿、可以开工。省掉的是我手动切换、装依赖、确认基线状态那半小时。
怎么防止把工作目录提交进仓库
新手玩 worktree 最容易踩的坑:在项目里建了.worktrees/,忘了写进 .gitignore,下次git add .顺手把整个另一个分支的目录全提交进去,仓库直接脏掉。Superpowers 的做法很机械:创建之前先检查这个目录是不是被 git 忽略了,没忽略就先补进 .gitignore 并提交这条改动,再动手建工作树:
git check-ignore -q .worktrees || echo ".worktrees/" >> .gitignore git worktree add .worktrees/bugfix-login -b bugfix/login装依赖也一样"按语言来":有 package.json 就跑npm install,Rust 项目cargo build,Python 看 requirements.txt 和 pyproject.toml,Go 跑go mod download。你拿到的是一个开箱就能跑测试的环境,不用记每种语言分别敲哪条命令。
传统切分支 vs 工作树:三个维度对比
| 维度 | 传统切分支 | 工作树方式 |
|---|---|---|
| 并行度 | 一次只能干一条分支 | 每个分支一个独立目录,天然并行 |
| 环境一致性 | 每次切换后重新确认依赖状态 | 每个工作树独立依赖,开工前先验基线 |
| 切换成本 | 先 stash 或提交,再处理冲突 | 打开对应目录即可,零上下文成本 |
| 心智负担 | 时刻惦记"我刚才改到哪了" | 改动被目录天然隔开,忘了也没事 |
新手 3 条速答
- 工作树目录嫌乱?放项目里的
.worktrees/一隐藏就眼不见为净;想放全局位置就写进 CLAUDE.md,Superpowers 会照着执行。 - 建完基线测试挂了怎么办?别硬闯,这说明基线本来就是脏的。要么先把原问题修了,要么明说"基线就坏的,继续"——你明确点头它才会往下走。
- 干完活怎么收尾?
skills/finishing-a-development-branch/SKILL.md接管:确认测试通过后给你三个选项(本地合并、推 PR、先放着),选了之后工作树清理由它自动执行,不用手敲git worktree remove。
克隆仓库git clone https://gitcode.com/GitHub_Trending/su/superpowers并配置进 Claude Code,下次再遇急 bug,你就只管写代码。🧘
【免费下载链接】superpowersAn agentic skills framework & software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowers
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考