mcpField
G
git-merge-expert-worktree

git-merge-expert-worktree

github.com/ulpi-io开发5159 次安装10 周前更新
代码仓库

关于 git-merge-expert-worktree

git-merge-expert-worktree 是一项在隔离 worktree 中执行 Git 合并和冲突处理的技能。它强调先检查仓库状态、验证结果,并在清理时避免自动删除用户分支。

主要功能

  1. 01检查现有 worktree 和分支状态
  2. 02在隔离 worktree 中执行合并
  3. 03指导冲突解决与恢复
  4. 04集成前验证操作结果
  5. 05安全清理 worktree 和临时分支

适用场景

  1. 01避免在主工作树中直接合并分支
  2. 02在隔离工作区解决冲突
  3. 03集成前验证 worktree 合并结果
  4. 04清理已完成或过期的 worktree

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ulpi-io/skills --skill git-merge-expert-worktree

安装后在 Claude Code 中输入/git-merge-expert-worktree确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
merge-playbook.md
worktree-conventions.md
worktree-expertise.md

详细介绍

此技能会修改 Git 状态,必须严格遵守纪律。

不可妥协的规则:

  1. 首先列出现有工作树,并确认当前工作树的上下文。
  2. 使用工作树时,合并操作必须与主工作树隔离。
  3. 正常清理时使用 git worktree remove,不要使用 rm -rf。
  4. 不得自动删除非临时分支。
  5. 强制移除有未提交更改的工作树或执行含义不明确的分支清理前,必须获得用户明确确认。

Git 合并专家 — 工作树专员

输入

  • $request:合并目标、源分支、工作树名称、清理任务或冲突解决目标

目标

通过以下方式安全地执行基于工作树的 Git 操作:

  • 查明现有工作树和当前上下文
  • 创建或选择合适的隔离工作区
  • 在工作树中执行合并和冲突处理
  • 验证结果后再进行集成
  • 正确清理工作树和临时分支

步骤 0:确定请求的操作

判断用户是否希望:

  • 创建工作树
  • 在工作树中执行合并
  • 在工作树中解决合并冲突
  • 验证现有工作树中的合并
  • 清理过期或已完成的工作树

如果请求的源分支、目标分支或清理范围含糊不清,请在修改 Git 状态前使用 AskUserQuestion。

成功标准:明确工作树操作、分支范围和清理预期。

步骤 1:查明当前工作树状态

在创建或移除任何内容之前,检查:

  • git worktree list
  • 当前仓库根目录
  • 当前分支和工作树状态
  • 目标分支是否已在其他工作树中检出

加载 references/worktree-conventions.md,了解路径、命名和生命周期规则。

规则:

  • 始终先列出工作树
  • 确认当前位于关联工作树还是主工作树中
  • 不要尝试在两个工作树中检出同一分支

成功标准:已知现有工作树、分支占用情况和当前上下文。

步骤 2:创建或准备隔离的工作树

为任务创建或复用合适的工作树。

常见决策:

  • 使用托管工作树路径还是同级路径工作树
  • 使用临时会话分支还是现有分支
  • 是否需要安装依赖、创建符号链接或传递环境文件等设置

加载 references/worktree-conventions.md,了解路径和分支约定。

规则:

  • 优先使用隔离工作树,而不是在主工作树中执行合并操作
  • 使用 git worktree list 验证工作树是否创建成功
  • 只运行适用于当前项目的设置步骤

成功标准:工作树已存在、位于预期分支上,并已准备好执行合并操作。

步骤 3:在工作树中执行合并或冲突操作

在工作树中:

  • 适当时创建备份标签
  • 执行请求的合并、变基、摘取提交或清理操作
  • 谨慎解决冲突,不要在不告知的情况下舍弃任何一方的更改

加载 references/merge-playbook.md,了解:

  • 冲突级别
  • 锁文件处理
  • 中止并重新创建的恢复方法
  • 过期工作树的清理模式

规则:

  • 如果用户要求隔离在工作树中操作,就不要在主工作树中合并
  • 重新生成发生冲突的锁文件,不要手动编辑
  • 如果重新创建工作树比修补损坏的合并状态更妥当,就中止操作并重新创建工作树

成功标准:Git 操作已在工作树中完成,结果连贯一致。

步骤 4:在最终集成前进行验证

使用范围最小且相关的检查验证工作树结果:

  • git status
  • 确认不存在冲突
  • 在适当时运行项目的构建、测试和类型检查命令
  • 在需要时检查分支拓扑

规则:

  • 如果仍有未解决的冲突或验证失败,不得声称合并成功
  • 验证范围应与项目和工具的实际情况相符
  • 如果验证失败,应先停止或恢复,然后再清理或推送

成功标准:工作树结果足够干净,可以进行集成或推送。

步骤 5:清理并确认主工作树未受影响

操作完成后:

  • 如有需要,返回主仓库上下文
  • 使用 git worktree remove 移除工作树
  • 在适当时仅删除临时会话分支
  • 运行 git worktree prune
  • 检查剩余的工作树列表和主工作树状态

加载 references/merge-playbook.md,了解清理和恢复规则。

规则:

  • 切勿自动删除非会话分支
  • 强制移除存在未提交更改的工作树前,先发出警告
  • 明确确认主工作树未被意外修改

成功标准:工作树生命周期已妥善结束,用户可以看到最终的 Git 状态。

防护措施

  • 不要让模型主动调用此技能;它会修改 Git 和工作树状态。
  • 不要添加 context: fork;此工作流已明确创建了 Git 隔离环境。
  • 不要添加 paths:;这是一个通用的 Git 工作流技能。
  • 不要在 SKILL.md 中保留冗长的操作指南、命令表或恢复百科。
  • 常规清理工作树时不要使用 rm -rf。
  • 除非用户明确要求,否则不要删除用户分支。
  • 不要在存在未提交更改的工作树上悄悄执行强制清理。

何时加载参考资料

  • references/worktree-expertise.md 在会话开始时加载,以了解角色和领域专业知识。

  • references/worktree-conventions.md 用于了解分支命名、路径布局、生命周期、设置惯例和销毁安全性。

  • references/merge-playbook.md 用于了解合并执行、冲突解决层级、锁文件处理、过期工作树清理,以及中止并重新创建的恢复流程。

输出约定

报告:

  1. 请求的操作以及已确定的分支和工作树范围
  2. 创建、复用或移除的工作树
  3. 合并或冲突处理结果及验证状态
  4. 创建或删除的分支或标签
  5. 最终的 git worktree list 和主工作树安全状态

评论

支持 Markdown