worktree 是 poteto/noodle 提供的 Git 工作树隔离技能,默认采用链接工作树隔离,适合并发会话、多智能体团队隔离或任何需要独立分支的工作。设置成本约 30 秒,可避免数小时的合并痛苦。
主要能力:通过 noodle worktree 命令统一管理,强制 CWD 安全、正确排序、stash/rebase 处理及依赖重装。命令包括:noodle worktree list 查看所有工作树及合并状态;noodle worktree create <name> 在 .worktrees/<name> 创建工作树和分支,符号链接 .claude/settings.local.json,自动检测包管理器并安装依赖;noodle worktree exec <name> <command...> 在工作树内运行命令,父 shell 的 CWD 不变;noodle worktree merge <name> 执行 CWD 安全检查、stash、rebase、合并、移除工作树、删除分支、prune 并重装依赖,可用 --into <branch> 指定目标分支;noodle worktree prune 自动清理已合并或补丁等价的工作树;noodle worktree cleanup <name> 不合并直接清理,--force 丢弃未合并提交。
使用方式:会话开始时运行 noodle worktree list 发现崩溃会话遗留的陈旧工作树。创建后,构建、测试等需以工作树为 CWD 的命令用 exec 运行;git 操作可用 git -C <project-root>/.worktrees/<name>;文件读写直接用绝对路径。合并默认目标为从 origin/HEAD 自动检测的集成分支,回退到 main。合并通过锁文件 .worktrees/.merge-lock 串行化,默认超时 5 分钟,陈旧锁自动清理。
适用场景:并行智能体团队(每个队友一个工作树,各自分支提交,由 lead 合并)、子智能体层级(子智能体合并回 lead 分支而非 main)、需要独立分支的并发工作。
限制与安全规则:切勿 cd 进入 .worktrees/,若 shell CWD 在工作树内时该工作树被移除,shell 会永久死亡(退出码 1,无法恢复)。Bash 工具的持久 shell 会使 cd 影响后续所有调用。应改用 exec、子 shell (cd /path && cmd)、绝对路径或 git -C。顺序任务、只读研究、无并发风险的单智能体工作不适用。工作树目录为项目根下的 .worktrees/(已 gitignore),分支为临时性,完成后合并回 main 并删除。Brain vault 为共享状态,不应分支。