
5步跑通Git WorktreesSuperpowers并行开发完整实操【免费下载链接】superpowersAn agentic skills framework software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowers同时改三个功能认证重构没提交完线上紧急修复等着拉下来实验分支还搁在中间。终端里stash叠了七层每次切换分支都在离翻车更近一步。这就是并行开发里最典型的分支切换冲突。Git Worktrees 本来就是为这个场景设计的而 Superpowers 把裸命令变成了一套能直接跑通的流程保障。 它解决什么问题Superpowers 在 Git 原生 worktree 能力之上叠了一条完整的工作区保障链在同一个仓库中同时打开多个完全隔离的工作目录自动定位目录、校验忽略规则、按项目类型装依赖、确认测试基线全绿然后才把可用工作区交到你手上。 心智模型Git Worktrees 到底在做什么worktree 就像同一栋房子的多个房间地基.git对象库是共享的每个房间工作目录加分支各自独立互不串味。这里要分清两层。一层是Git Worktrees提供的原生能力一条git worktree add就能开出新房间。另一层是 Superpowers 叠加的流程保障开房前先确认你是不是已经站在某个房间里避免嵌套创建确认选址符合项目惯例确认房间不会被误登记进主房产水电验收基线测试合格才让你入住。原生能力给钥匙Superpowers 管流程。 实操路径Superpowers工作树5步跑通完整流程定义在skills/using-git-worktrees/SKILL.md。本地还没有项目的话先取一份git clone https://gitcode.com/GitHub_Trending/su/superpowers1. 检测与准备动手前先判断现状——你是不是已经处在隔离工作区里GIT_DIR$(cd $(git rev-parse --git-dir) pwd -P) GIT_COMMON$(cd $(git rev-parse --git-common-dir) pwd -P)为什么执行这两条路径对比能区分你在主仓库还是在已关联的工作树。避免在已隔离的环境上再套一层。2. 创建工作树如果没有平台原生工具就手工用 git 建。目录优先级是你明确声明的偏好 项目里已有的.worktrees或worktrees目录 默认.worktrees/。创建前先验证忽略状态git check-ignore -q .worktrees 2/dev/null || git check-ignore -q worktrees为什么执行工作树目录若不在忽略清单里整个隔离工作区会被提交进仓库。这是最容易被漏掉的一步。git worktree add .worktrees/auth -b feature/auth cd .worktrees/auth为什么执行-b顺手开出新分支此后所有改动都发生在这个房间里。3. 自动检测项目类型并安装依赖根据根目录的标记文件自动执行对应安装命令[ -f package.json ] npm install [ -f Cargo.toml ] cargo build [ -f requirements.txt ] pip install -r requirements.txt [ -f go.mod ] go mod download为什么执行新目录没有依赖缓存装完才能进入可开发状态没有对应文件就静默跳过不报错。4. 基线测试不通过时怎么处理先跑一遍测试npm test # 或 cargo test / pytest / go test ./...为什么执行确认起点是干净的。只有这里全绿之后某测试挂了才能归因到你的代码而不是历史遗留问题。若基线失败流程会停下来问你是否继续而不是默认往下走。5. 就绪报告一切就绪后你会看到这样的汇报Worktree ready at /path/to/.worktrees/auth Tests passing (47 tests, 0 failures) Ready to implement auth feature 决策指南遇到不同情况怎么办已经处在关联工作树里 → 跳过创建直接进依赖安装不嵌套你在 git submodule 里 → 按普通仓库处理检测命令会替你区分.worktrees/和worktrees/都存在 → 优先用隐藏的.worktrees/两个目录都不存在 → 查CLAUDE.md声明的偏好没有就默认.worktrees/目录未被忽略 → 先加进.gitignore并提交再创建项目没有任何依赖文件 → 跳过安装直接跑基线测试基线测试失败 → 报告失败等你拍板不自行继续 完整走查从创建到工作树清理我开一个新会话说要开发认证功能。Superpowers 第一句话是Im using the using-git-worktrees skill to set up an isolated workspace.它先跑了前面那两条对比命令确认我在主仓库而非现成工作树。CLAUDE.md里没有声明偏好于是按优先级找到项目里已存在的.worktrees/。创建前它自动执行git check-ignore确认该目录已被忽略——如果没被忽略这一步会自动补规则并提交。接着执行git worktree add .worktrees/auth -b feature/auth检测到根目录有package.json于是跑npm install再跑npm test47 个测试全过汇报就绪。我在里面实现了认证功能并补了测试。全绿之后切到finishing-a-development-branch技能它重跑完整测试问我选本地合并、发 PR 还是保留分支。我选了本地合并合并验证通过后它自动完成工作树清理git worktree list git worktree remove .worktrees/auth git worktree prune为什么执行先用 list 确认目标remove 删掉目录与登记prune 清扫历史残留下次不会被幽灵记录挡住。⚠️ 踩坑复盘四个最容易翻车的瞬间1. 跳过忽略验证现象工作树文件突然出现在git status里仓库被污染。根因目录没进忽略清单新文件被一并跟踪。Superpowers 的防护把git check-ignore设为创建前的必经步骤未忽略就先补规则并提交。2. 假设目录位置现象有人用.worktrees/有人用worktrees/结构混乱忽略规则只覆盖其中一个。根因凭感觉选目录没看已有惯例。Superpowers 的防护优先级固定为声明偏好 已有目录 默认值两个都在时用隐藏目录。3. 带着失败的基线继续现象后面测试挂了分不清是新 bug 还是历史问题。根因起点就是脏的归因失去参照。Superpowers 的防护基线失败时只报告并询问是否继续把决定权交还给你。4. 硬编码构建命令现象在 Node 项目上顺风顺水的流程到了 Rust 项目npm install直接报错。根因命令按单一项目的经验写死没有检测环节。Superpowers 的防护按项目标记文件检测对应命令检测不到就跳过。 生态位它在流程里的位置brainstorming 的设计获批后由本技能为实现准备隔离开发环境中间的 executing-plans 和 subagent-driven-development 在工作树内完成任务收工时由 finishing-a-development-branch 负责合并与工作树清理。四个技能形成准备—实现—收尾的上下游关系。 延伸学习skills/using-git-worktrees/SKILL.md完整创建工作树流程含所有分支与回退路径skills/finishing-a-development-branch/SKILL.md开发结束后的合并、PR 与清理规则tests/claude-code/test-worktree-native-preference.sh验证代理优先选原生工具避免产生看不见的幽灵状态tests/claude-code/test-worktree-path-policy.sh回归检查确保新工作树落在项目本地目录docs/porting-to-a-new-harness.md讲解把这套流程移植到其他执行环境的思路下次再同时改三个功能时stash 大概只会剩一层——或者干脆为零。那七层叠层变成几个各过各的隔离目录切换分支从负担回到了它本来的位置。【免费下载链接】superpowersAn agentic skills framework software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考