关于 git-merge-expert-worktree
git-merge-expert-worktree 是一项在隔离 worktree 中执行 Git 合并和冲突处理的技能。它强调先检查仓库状态、验证结果,并在清理时避免自动删除用户分支。
主要功能
- 01检查现有 worktree 和分支状态
- 02在隔离 worktree 中执行合并
- 03指导冲突解决与恢复
- 04集成前验证操作结果
- 05安全清理 worktree 和临时分支
适用场景
- 01避免在主工作树中直接合并分支
- 02在隔离工作区解决冲突
- 03集成前验证 worktree 合并结果
- 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.mdworktree-conventions.mdworktree-expertise.md详细介绍
不可妥协的规则:
- 首先列出现有工作树,并确认当前工作树的上下文。
- 使用工作树时,合并操作必须与主工作树隔离。
- 正常清理时使用
git worktree remove,不要使用rm -rf。 - 不得自动删除非临时分支。
- 强制移除有未提交更改的工作树或执行含义不明确的分支清理前,必须获得用户明确确认。
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用于了解合并执行、冲突解决层级、锁文件处理、过期工作树清理,以及中止并重新创建的恢复流程。
输出约定
报告:
- 请求的操作以及已确定的分支和工作树范围
- 创建、复用或移除的工作树
- 合并或冲突处理结果及验证状态
- 创建或删除的分支或标签
- 最终的
git worktree list和主工作树安全状态