Worktree Manager 是一个管理 git worktrees 的技能,遵循在仓库内使用 .worktrees/ 文件夹的策略。它的核心目的是让主仓库始终保持干净(停留在 main/master),同时以并行的独立工作副本处理不同分支,避免频繁切换分支带来的上下文混乱。
目录结构方面,技能约定 worktree 存放在仓库根目录下的 .worktrees/ 中,该目录需被 .gitignore 忽略。例如 .worktrees/feature-x/ 对应分支 feature-x,.worktrees/bugfix-123/ 对应分支 bugfix-123;仓库源码位于主目录,.gitignore 中应包含 .worktrees/。技能强调 worktree 的文件夹名应与分支名一致,且 worktree 是临时性的,不是永久工作区,合并后应清理。
使用前需先确认上下文,通过 git rev-parse --is-inside-work-tree 与 git branch --show-current 判断是否位于工作树内以及当前分支。首次在项目中使用时进行初始化:检查 .gitignore 是否已有 .worktrees/,没有则追加,并创建 .worktrees 目录;若 .gitignore 被修改,则提交 “chore: ignore worktrees folder”。
主要命令包括:创建新分支的 worktree,使用 git worktree add .worktrees/<branch> -b <branch>;从已有远程分支创建,先 git fetch origin,再 git worktree add .worktrees/<branch> origin/<branch>;列出使用 git worktree list;合并后清理使用 git worktree remove、git push origin --delete 与 git branch -d;以及 git worktree prune 清理孤儿引用。
分支命名需遵循约定:新功能用 feature/<描述> 或 feature-<描述>,修复用 bugfix/<描述> 或 bugfix-<描述>,紧急修复用 hotfix/<描述>,维护任务用 chore/<描述>。
在 worktree 内工作时,技能提示:cd 不会在多次 Bash 工具调用之间保持,因此应使用绝对路径,或用 && 将 cd 与命令串联;同时不建议使用 git add .,而应显式添加具体文件,例如 git add src/feature.ts src/feature.test.ts,随后提交并推送。
清理流程为:确认 PR 已合并后,从根目录执行 git worktree remove .worktrees/<branch>、git push origin --delete <branch>、git branch -d <branch>。技能还提供 prune 来处理孤立的 worktree 引用。
技能要求在与用户交互时进行确认:创建前询问分支名称,首次使用时确认是否把 .worktrees/ 加入 .gitignore;清理前确认 PR 是否已合并,以及是否同时删除远程分支。
限制方面:资料未提供该技能的具体支持平台、安装方法、收费模式或效果数据,暂未提供。