用途:帮助处理 Git 合并(merge)或变基(rebase)冲突,既支持当前处于冲突状态的解决,也支持冲突预览与主动处理。通过 /resolve-conflicts 调用。
主要能力:
- 检测冲突状态:判断是否处于 merge 中(git rev-parse --verify MERGE_HEAD)、rebase 中(检查 rebase-merge/rebase-apply 目录),以及是否存在未合并文件(git diff --name-only --diff-filter=U)。无活动冲突时可预览潜在冲突。
- 收集上下文:读取当前分支、目标分支(默认 main)、拉取最新(git fetch origin),并列出双方共同修改的文件。
- 分析每个冲突文件:用 git diff <file> 展示三方差异,用 git show :1:<file>、:2:<file>、:3:<file> 分别查看共同祖先、己方和他方版本;判断冲突类型(重叠编辑、相邻编辑、结构性冲突、语义冲突)。
- 提出解决策略:接受己方(git checkout --ours)、接受对方(git checkout --theirs)、合并双方(手动编辑后 git add)、或需人工判断的手动解决。
- 意图不明时提出具体澄清问题,例如重叠编辑保留哪种行为、结构冲突是否查看完整差异、语义冲突哪套业务逻辑正确。
- 应用并校验:解决后检查是否仍有未合并文件、暂存区是否残留冲突标记,再查看将提交内容。
- 完成流程:合并冲突用 git commit 提交并注明已解决文件;变基冲突用 git rebase --continue,若再次出现冲突则重复分析步骤。
- 提供解决摘要(文件、解决类型、备注)、建议,以及可用的中止选项(git merge --abort、git rebase --abort)。
使用方式:在支持该技能的环境中输入 /resolve-conflicts,按提示逐步执行上述流程;解决过程中涉及的命令保持原样执行。
适用场景:本地分支合并、rebase 出现冲突,或希望在合并前预览潜在冲突时。
限制:语义冲突通常需要人工判断,工具会提出澄清问题而非自行决定;相关收费、价格、平台支持等信息暂未提供。