SuperAPI AI 工具集

lgnh-rebase-worktrees

编程与开发

查看项目

更新于 11-06 16:22

技能介绍

用途:该技能面向使用 Git worktree 并行开发的场景,用于把除主 worktree 之外的所有 worktree 统一变基到一个目标分支,并完成后续的依赖安装与 .env 键同步,减少逐个目录手工操作。

主要能力:

  1. 收集 worktree 信息:运行 git worktree list --porcelain,识别主 worktree(第一条记录,且不带位于 .claude/worktrees/ 下的分支行),记录其路径与分支,并将主 worktree 排除在变基目标之外;若不存在其他 worktree,则提示用户并停止。
  2. 确定目标分支:若用户提供分支参数则使用该分支;否则取主 worktree 的当前分支。目标始终为本地分支,不使用远程跟踪分支,也不执行 git fetch。
  3. 逐个变基:对每个非主 worktree 执行 git -C <worktree_path> rebase <target_branch>。遇到冲突时执行 git rebase --abort 恢复到变基前状态,记录失败路径与分支后继续处理下一个;成功则记入成功列表。
  4. 安装依赖:对变基成功的 worktree,按根目录锁文件检测包管理器并执行安装:bun.lockb 或 bun.lock 对应 bun install;pnpm-lock.yaml 对应 pnpm install;yarn.lock 对应 yarn install;package-lock.json 对应 npm install。无锁文件则跳过;多个锁文件按上述优先级取第一个匹配。安装失败会报告但不中止整体流程。
  5. 同步 .env 键:若主 worktree 根目录无 .env 则跳过。解析主 .env 的键名(匹配 KEY=...,忽略注释与空行),对每个变基成功的 worktree 比较键集合,列出新增键(主有而 worktree 无)与移除键(worktree 有而主无)。存在差异时通过 AskUserQuestion 询问是否更新;若批准,新增键从主 .env 复制键值对,移除键则删除对应行,否则跳过。
  6. 结果汇总:输出目标分支、成功列表、失败列表、各 worktree 的依赖安装状态(成功/失败/跳过)以及 .env 同步状态(已更新/跳过/无 .env)。

使用方式:在支持该技能的环境中调用,可通过参数指定目标分支,也可省略以使用主 worktree 当前分支。触发词为“rebase worktrees”“sync worktrees”。

适用场景:多 worktree 并行开发、需要统一基线分支、希望批量补齐依赖与 .env 配置的仓库维护工作。

限制与注意:冲突时总是中止变基,避免留下中间状态;某个失败不会中断整体处理;仅对变基成功的 worktree 安装依赖;.env 同步只比较键名不比较值,新增键的值从主 worktree 复制。该技能不执行 git fetch,因此不会拉取远程更新。