Agent Skills
返回列表
💻

语法感知的 Git 合并冲突修复

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/resolve-syntax-aware-git-merge-conflicts-before-escalating-to-manual-surgery-with-mergiraf。

技能介绍

我们要解决的问题

当两个人修改了同一个代码文件的相近位置时,Git 的内置合并逻辑常常分不清代码的结构边界。它会把两个不同语义的代码块简单拼接在一起,形成一个语法上不成立的中间产物。接着开发人员只好手动打开冲突文件,在 <<<<<<<、=======、>>>>>>> 标记之间做选择,这种工作既乏味又容易出错——尤其在 PHP、TypeScript 这类嵌套标签复杂的语言中,冲突范围很容易判断错误。

技能的工作原理

这个技能要求在手动修复之前,首先调用 Mergiraf 进行树感知(tree-aware)冲突解决。

核心流程是:

  • 当 merge、rebase、revert 或 cherry-pick 触发冲突时,先让 Mergiraf 尝试基于语法结构重建一个合法的合并结果
  • Mergiraf 会解析双方的 AST,在语法节点层面做合并,而不是在行层面做简单拼接
  • 如果自动合并成功,你能直接得到一个语法完整的结果;如果失败,再退回到手动编辑

这个工作流利用工具的语法感知能力,把手工修复留到真正无法自动化的情况下。

适用边界与注意点

  • Mergiraf 针对特定语言提供专用解决器,覆盖度取决于上游项目对语言的支持范围
  • 该工具需要配合支持其集成方式的 Git 客户端使用,普通命令行环境下的适用性需自行验证
  • 遇到 Mergiraf 无法处理的冲突形态时,它不会凭空生成合法代码,此时仍需人工介入理解语义差异
  • 对于业务逻辑层面的冲突(如同一函数的不同算法实现),语法感知合并只能帮你得到一个语法合法的结果,不能替你决定保留哪个版本

使用场景

  • 团队在 PHP 或 TypeScript 项目中执行 Git merge 时,遇到标签嵌套复杂导致的合并冲突,需要基于语法树自动解决。
  • 开发者在执行 Git rebase 整理提交历史时触发冲突,希望先用 Mergiraf 尝试 tree-aware 合并,而非立即手动编辑冲突文件。
  • CI 流水线或本地开发中执行 Git revert 或 cherry-pick 引入了冲突,需要一个能保持语法合法性的自动合并步骤。
  • 多分支并行开发时,不同实现方式导致行级合并产生语法错误,需要在手动修复前获得结构化的合并结果。

适合人员

  • 后端开发工程师:在多人协作仓库中频繁处理合并冲突,希望减少手动编辑冲突标记的时间。
  • 全栈开发者:维护包含 PHP 或 TypeScript 的复杂代码库,需要工具理解嵌套标签结构以正确合并。
  • 团队技术负责人:希望在代码评审前确保 rebase 或 cherry-pick 产生的合并结果语法合法。
  • DevOps 工程师:在自动化流水线中集成 Git 操作,需要可靠的语法感知合并步骤来处理冲突。