关于 worktree-merge
worktree-merge 是一项通过临时集成分支按顺序合并多个功能分支的技能,并在验证通过后再合入原分支。它面向本地分支集成,会从仓库配置中识别验证命令,并在冲突或测试失败时停止。
主要功能
- 01通过单一临时分支集成多个分支
- 02按给定顺序逐个合并
- 03从仓库和 CI 配置识别验证命令
- 04每次合并后运行测试并执行完整验证
- 05失败时提供回滚和清理步骤
适用场景
- 01在本地集成多个功能分支
- 02逐个确认分支合入后的测试状态
- 03在全套验证通过后更新当前分支
- 04测试失败或冲突后按步骤恢复
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ coleam00/ skills --skill worktree-merge安装后在 Claude Code 中输入/worktree-merge确认已加载。
详细介绍
Worktree 合并
通过单个临时集成分支,将任意数量的功能分支合并到当前工作分支。只有在所有分支都合并且整个测试套件通过后,改动才会进入主线。验证命令会从仓库中检测,绝不凭空假定。
输入
$ARGUMENTS 是要集成的分支列表。
- 少于两个 → 询问要集成哪些分支。不要猜测。
- 两个或更多 → 按给定顺序集成。
一次性检测验证命令
查找能够证明项目正常运行的命令,优先采用 CI 已运行的命令:读取 .github/workflows/*、Makefile 或清单中的测试/lint 脚本,并使用完全相同的命令(测试运行器、类型检查器、lint 工具)。不要硬编码 pytest/mypy/pyright——使用该仓库实际采用的工具。
步骤
-
前置检查。 确认当前位于仓库根目录,而不是
worktrees/内部([[ $(pwd) =~ /worktrees/ ]]→ 报错)。保存当前分支。验证列表中的每个分支都存在(git rev-parse --verify <branch>)。如果任何检查失败,立即中止并给出明确说明。 -
创建一个集成分支,基于当前分支创建,并根据分支集合命名(例如
integration-<first>;如果有多个分支,则添加简短后缀——确保名称适用于文件系统)。在此分支上测试合并;直到最后,主线都保持不变。 -
按顺序合并每个分支,使用
--no-ff。每次合并后,都运行检测到的测试命令,以便定位导致问题的分支。- 发生冲突时: 停止,指出发生冲突的分支和文件,并给出解决步骤(解决冲突 →
git add→git commit→ 重新运行此技能)。不要尝试自动解决。 - 测试失败时: 停止,报告失败的测试,并给出回滚命令(
git checkout <original>→git branch -D <integration>)。
- 发生冲突时: 停止,指出发生冲突的分支和文件,并给出解决步骤(解决冲突 →
-
完整验证:合并所有分支后,运行项目检测到的完整验证套件(测试 + 类型检查 + lint)。任何检查失败 → 报告失败并回滚;不要让失败的改动进入主线。
-
将集成分支合并到原始分支(
--no-ff),然后删除集成分支。 -
使用 AskUserQuestion 询问是否清理:移除 N 个工作树并删除其功能分支,还是保留它们。若用户同意,对每个分支执行:
git worktree remove worktrees/<branch>和git branch -d <branch>。
报告
- 成功: 报告使用的集成分支、每个已合并的分支及其合并后测试结果、完整验证结果、合并到
<original>的结果,以及清理状态(工作树已保留或已移除;若保留,则提供手动清理命令)。 - 失败: 报告失败的步骤和分支、当前分支状态、准确的回滚命令(
git checkout <original>→git branch -D <integration>),以及修复后如何继续(使用相同的分支列表重新运行)。
注意事项
--no-ff会保留每个功能分支的历史记录。- 集成分支可随时丢弃——只有在所有分支都合并且完整测试套件通过后,原始分支才会前进。
- 在团队协作时,优先为每个分支单独创建 PR;此技能适用于自己负责合并时的快速本地集成。