
Git Worktrees并行开发4个机制告别反复切换分支【免费下载链接】superpowersAn agentic skills framework software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowers你正赶一个线上bug手头还压着一个没写完的功能。用 git stash 切分支同事半小时后来找你半成品就废了。Git Worktrees 让同一个仓库开出多个独立工作区Superpowers 的 using-git-worktrees 技能把这套能力流程化自动选目录、验证隔离、跑基线测试并行分支管理从此不是麻烦事。 Git Worktrees 之前的糟糕日常没有 worktree 时同时干两件事只能靠切分支。每次切换都是一轮 stash、checkout切回来还得回忆刚才藏了哪些改动。依赖多的项目更糟切分支触发重装依赖两个功能依赖版本不同环境直接打架。更要命的是分支状态和你的工作状态被绑死了bug 很急、功能写一半你只能二选一——暂停功能或者赌一把切换。Git Worktrees 解决的正是这件事同一个仓库开出多个工作目录各自钉在一个分支上共享同一份提交历史。但原生用法有坑目录放哪、有没有进 .gitignore、基线测试过不过。Superpowers 把这些都做成了强制检查项核心价值一句话每个功能都有一块隔离好、装完依赖、验证过测试的工作区你随便切换。⚙️ Git Worktrees 并行开发的4个自动检查机制先确认你是不是已经在工作树里技能的第一动作是检测已有隔离。它先比较 git rev-parse --git-dir 和 --git-common-dir 两个路径如果不一致且不在子模块里说明你已经在一个工作树中就不再新建。这一步防两件事重复创建嵌套工作树以及把子模块误判成工作树子模块的 git-dir 和 common-dir 也不一样需要单独验证。怎么确认生效Agent 会汇报 Already in isolated workspace aton branch 。按固定优先级选工作树目录新工作区放哪不是随手定的。优先级是你明确配置过的目录 项目里已有的 .worktrees/ 或 worktrees/ 目录两个都在就用 .worktrees 默认的项目根目录 .worktrees/。这样设计是为了结构一致无论你开哪个功能工作树都长在同一个地方后续清理才不会找不着。怎么确认创建后新工作区就落在这个目录下子目录名用分支名。验证工作树目录已被 Git 忽略最经典的坑工作树目录没进 .gitignore下次 git add . 把整个工作区的树提交进了仓库。所以技能要求创建前必须跑 git check-ignore -q .worktrees。没被忽略就先把目录写进 .gitignore、提交这个改动再创建。怎么确认检查命令无输出说明已被忽略且 git status 保持干净。自动装依赖并跑基线测试工作树是新签出的目录没有 node_modules没有构建产物。技能会按项目类型自动装依赖见到 package.json 跑 npm install见到 Cargo.toml 跑 cargo build见到 go.mod 跑 go mod download。装完先跑一遍完整测试套件作为基线。为什么要这么麻烦基线不干净之后测试红了你分不清是自己改坏的还是一开始就有问题。怎么确认生效Agent 汇报 Worktree ready at和 Tests passing (N tests, 0 failures) 才算就绪。如果基线是红的它会报出失败项并问你是否继续——决定权在你。️ 动手实践开一个工作区清一个工作区如果你想快速体验 Superpowersgit clone https://gitcode.com/GitHub_Trending/su/superpowers克隆好后对 Agent 说一句用 using-git-worktrees 技能给我建个工作区它会把上面4个机制走完。如果你想开新功能又不想动当前代码git worktree add .worktrees/auth -b feature/auth cd .worktrees/auth npm install npm test预期结果测试通过新工作区落在 .worktrees/auth 下与主工作区共享的只有提交历史。如果你想清理已完工的工作树# 先回到主仓库根目录 cd /path/to/your-project git worktree remove .worktrees/auth git worktree prune预期结果目录消失git worktree list 只剩主仓库陈旧注册信息一并清掉。⚠️ 避坑指南4个你大概率会踩的坑坑一以为目录肯定被忽略。不跑 check-ignore 直接 git worktree add下次提交可能把整棵工作树拖进仓库。正确做法是创建前先跑 git check-ignore -q .worktrees没被忽略就先写进 .gitignore 并提交。坑二平台有原生工作树工具时硬上 git worktree add。如果你的 Agent 环境提供了类似 EnterWorktree 的工具绕过它执行裸 git 命令会制造一个幻影状态——工具看不见、也清理不掉。正确做法是优先用原生工具没有才退回 git 命令。坑三工作树建完不跑基线测试就开工。之后测试一红分不清是你写的坏的还是本来就坏。正确做法是装依赖、跑测试基线绿了再动手红了就停下来决定是否继续。坑四人站在目录里删工作树。git worktree remove 必须在工作树外面执行在要删的目录里跑命令只会得到令人困惑的报错。正确做法是先 cd 回主仓库根目录删完再跑 git worktree prune 清注册信息。下次赶 bug 时你可以这么做下次线上bug催命、功能又没写完时别再 stash 了给两边各开一个工作树各自跑通基线完工后逐个合并回来。想看完整检查清单直接读 skills/using-git-worktrees/ 下的技能定义。【免费下载链接】superpowersAn agentic skills framework software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考