mcpField
W
worktree-merge

worktree-merge

github.com/coleam00开发722211 次安装3 周前更新
代码仓库

关于 worktree-merge

worktree-merge 是一项通过临时集成分支按顺序合并多个功能分支的技能,并在验证通过后再合入原分支。它面向本地分支集成,会从仓库配置中识别验证命令,并在冲突或测试失败时停止。

主要功能

  1. 01通过单一临时分支集成多个分支
  2. 02按给定顺序逐个合并
  3. 03从仓库和 CI 配置识别验证命令
  4. 04每次合并后运行测试并执行完整验证
  5. 05失败时提供回滚和清理步骤

适用场景

  1. 01在本地集成多个功能分支
  2. 02逐个确认分支合入后的测试状态
  3. 03在全套验证通过后更新当前分支
  4. 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——使用该仓库实际采用的工具。

步骤

  1. 前置检查。 确认当前位于仓库根目录,而不是 worktrees/ 内部([[ $(pwd) =~ /worktrees/ ]] → 报错)。保存当前分支。验证列表中的每个分支都存在(git rev-parse --verify <branch>)。如果任何检查失败,立即中止并给出明确说明。

  2. 创建一个集成分支,基于当前分支创建,并根据分支集合命名(例如 integration-<first>;如果有多个分支,则添加简短后缀——确保名称适用于文件系统)。在此分支上测试合并;直到最后,主线都保持不变。

  3. 按顺序合并每个分支,使用 --no-ff。每次合并后,都运行检测到的测试命令,以便定位导致问题的分支。

    • 发生冲突时: 停止,指出发生冲突的分支和文件,并给出解决步骤(解决冲突 → git add → git commit → 重新运行此技能)。不要尝试自动解决。
    • 测试失败时: 停止,报告失败的测试,并给出回滚命令(git checkout <original> → git branch -D <integration>)。
  4. 完整验证:合并所有分支后,运行项目检测到的完整验证套件(测试 + 类型检查 + lint)。任何检查失败 → 报告失败并回滚;不要让失败的改动进入主线。

  5. 将集成分支合并到原始分支(--no-ff),然后删除集成分支。

  6. 使用 AskUserQuestion 询问是否清理:移除 N 个工作树并删除其功能分支,还是保留它们。若用户同意,对每个分支执行:git worktree remove worktrees/<branch> 和 git branch -d <branch>。

报告

  • 成功: 报告使用的集成分支、每个已合并的分支及其合并后测试结果、完整验证结果、合并到 <original> 的结果,以及清理状态(工作树已保留或已移除;若保留,则提供手动清理命令)。
  • 失败: 报告失败的步骤和分支、当前分支状态、准确的回滚命令(git checkout <original> → git branch -D <integration>),以及修复后如何继续(使用相同的分支列表重新运行)。

注意事项

  • --no-ff 会保留每个功能分支的历史记录。
  • 集成分支可随时丢弃——只有在所有分支都合并且完整测试套件通过后,原始分支才会前进。
  • 在团队协作时,优先为每个分支单独创建 PR;此技能适用于自己负责合并时的快速本地集成。

评论

支持 Markdown