用途
Worktree Manager 用于通过 git worktree 编排并行开发。它会在会话启动时主动检测当前工作目录的 WIP(进行中工作)状态,并主动提出将工作隔离到独立 worktree 中,从而让开发者可以在多个任务之间并行推进而不互相干扰。
主要能力
主动触发
当会话开始且工作目录存在 WIP 状态时激活。检测方式包括:
- 未提交或已暂存的更改:
git status --porcelain - Stash 列表:
git stash list - 未推送提交(可能因无上游而失败,属正常):
git log --oneline @{u}..HEAD 2>/dev/null
若任一命令有输出,则向用户展示 WIP 摘要,并提供三个选项:
- A) 将 WIP 移入 worktree(stash、创建 worktree、在其中应用)
- B) 继续在当前分支工作(本次会话不再提示)
- C) 先查看详情
选择 A 时,询问 worktree 名称和描述,执行 git stash push -m "wt-migration: <name>",通过 /wt new <name> --desc "..." 创建 worktree(直接传入名称和描述,不提示类别或工作类型),在新 worktree 中执行 git stash pop,并确认 WIP 已迁移、当前分支已干净。
选择 B 时,本次会话不再就 WIP 状态提示。
选择 C 时,展示三个检测命令的完整输出,然后重新提供 A/B 选项。
仪表盘
当用户询问“show my worktrees”“what am I working on”或“worktree status”时,读取 .worktrees/registry.json,对每个 worktree 收集:
- 领先提交数:
git -C <path> log --oneline <base>..<branch> - 落后提交数:
git -C <path> log --oneline <branch>..<base> - 未提交更改:
git -C <path> status --porcelain - 最后活动时间:
git -C <path> log -1 --format=%ar
以“Parallel Development Dashboard”形式展示每个 worktree 的编号、名称、状态、最后活动时间、分支、领先/落后提交数、修改文件数、描述,并列出警告(如落后于 master 建议 rebase)。
上下文恢复
当用户说“what am I working on”或休息后返回时,展示仪表盘,并对最近活跃的 worktree 显示:最后 3 条提交信息、当前修改的文件、分支 diff 中新增的 TODO/FIXME 注释,并建议是否继续。
多 Worktree 创建
当用户说“I need to work on N things”或列出多个任务时,解析任务,为每个任务派生 worktree 名称和描述(不提示类别或工作类型),展示创建计划并请求确认,确认后依次通过 /wt new 流程创建所有 worktree,最后展示仪表盘。
清理建议
当用户要求“clean up worktrees”或在仪表盘中检测到时,识别以下候选:
- Done:分支已完全合并到 base 的 worktree
- Stale:超过 7 天无提交且状态为 active 的 worktree
- Missing:registry 中路径已不存在的条目
展示清理建议及对应命令(如 /wt rm <name>)。
冲突早期预警
当用户要求“check for conflicts”或在仪表盘中存在多个 active worktree 时,对每对 active worktree 检查文件重叠:
- 各 worktree 相对 base 的变更文件:
git -C <path> diff --name-only <base>...<branch> - 求变更文件交集
- 对重叠文件检查是否触及相同行:
git -C <path> diff <base>...<branch> -- <file>
以“Conflict Risk Assessment”形式报告重叠文件、冲突可能性(如 LIKELY CONFLICT、low risk)及合并建议。
使用方式
通过 /wt 命令执行操作:
/wt new <name>- 创建 worktree/wt list- 紧凑列表/wt status- 详细仪表盘/wt pause <name>//wt resume <name>- 切换状态/wt rm <name>- 删除 worktree/wt merge <name>- 引导式合并流程
适用场景
- 需要同时推进多个开发任务,希望隔离各自的工作区
- 当前分支存在未提交更改、stash 或未推送提交,希望迁移到独立 worktree
- 需要查看所有 worktree 的状态、进度和最后活动时间
- 需要识别可清理的 worktree(已合并、长期无活动、路径丢失)
- 需要提前发现多个 worktree 之间的文件冲突风险
限制
- 依赖 git worktree 和
.worktrees/registry.json注册表 - 未推送提交检测在无上游分支时可能失败(属正常情况)
- 冲突预警基于文件与行范围重叠分析,不保证完全准确
- 具体安装方式、平台支持、收费情况暂未提供