用途:在 git 合并、变基或拣选(cherry-pick)因未合并路径停下时,负责冲突如何解决。选哪种集成方式由调用方决定,本技能从 git 报出 CONFLICT 开始,到操作完成且各项校验通过为止。
主要纪律:先读意图再改代码,任何 hunk 在两侧提交都被读过、且能用一句话说出各方意图前不解决;机械保留 ours 或 theirs(git checkout --ours/--theirs、-X ours/theirs)不是解决,而是静默删除他人改动;--abort 不是解决策略,仅在用户明确决定放弃集成时使用。
用法:先用 git status | head -4 判断操作类型,用 git diff --name-only --diff-filter=U 列出全部冲突路径,用 git branch --show-current 取当前分支。按操作类型取对应 ref(MERGE_HEAD、REBASE_HEAD、CHERRY_PICK_HEAD、REVERT_HEAD),用 BASE=$(git merge-base HEAD <ref>) 后查看两侧历史,逐路径写出各方一句话意图。变基时 ours/theirs 标签会反转,须先校正。
解决原则:默认合成双方改动;仅在证据表明被取代、已回退或重复时才丢弃一侧并记录证据;真正不兼容时保留符合集成目标的一侧并上报取舍;不得发明两侧都没有的行为。标记消除后还要做语义冲突排查:全局搜索被重命名、改签名、移动或删除的符号,并按项目顺序跑类型检查/构建、测试、lint/格式化。
收尾:给出覆盖全部冲突路径的解决表,逐个精确 git add 后执行 git merge --continue、git rebase --continue、git cherry-pick --continue 或 git revert --continue;变基在每次停下时重复前述步骤。停滞时停下并向用户说明证据,由用户决定是否放弃。
限制:不决定 merge 还是 rebase,不推送或处理 PR 流程,不代替普通提交,不做批量解决,不绕过钩子或校验。全部基于普通 git;gh、构建/测试/lint 等为可选增强,缺失时按项目文档命令执行。项目自身的 CLAUDE.md 与规则优先。