SuperAPI AI 工具集

git-cherry-pick

编程与开发

查看项目

更新于 10-22 17:16

技能介绍

用途

该技能用于将一个分支或引用上的指定 Git 提交安全地应用到另一个分支,常见场景包括:挑选某项修复、将工单变更回迁到其他分支、把选定的少量提交移动到目标分支。它只应用被请求的提交,不合并无关改动,且不绑定特定仓库或托管服务商。

主要能力

  • 推断用户意图:区分显式指定提交、从源到目标的工单提交、回迁/修复目标,以及“把源分支合并进目标”的情形(后者不走 cherry-pick,转交给常规 MR/PR 流程)。
  • 检查上下文:通过 git status、git log、git branch 等命令了解当前状态与分支情况,并在比较前先获取命名引用。
  • 展示执行计划:在修改前给出模式、源引用、目标分支、提交及数量、涉及文件、新工作分支和授权状态。
  • 选择提交并创建工作分支:比较源与目标,筛选与工单/问题引用相关的提交并核实其文件与父提交,仅在必要时纳入前置提交;工作分支从目标分支创建,而非源分支。
  • 执行 cherry-pick:按从旧到新的顺序使用 git cherry-pick -x 应用提交;遇到合并提交时先检查其父提交,不猜测主线,优先使用原始非合并提交。
  • 冲突处理:冲突时停止并报告冲突文件,检查双方与目标上下文,仅在预期行为明确时解决,运行聚焦检查后用 git cherry-pick --continue 继续或 git cherry-pick --abort 中止。空 cherry-pick 时先核实变更是否已存在于目标分支。
  • 验证与发布:推送前确认变更范围,检查差异、空白错误和提交列表,运行仓库要求的检查与最相关的测试;若发现密钥、环境文件、无关改动、意外依赖变化或与计划不符的文件/提交集合则停止。发布时推送工作分支,并使用仓库托管平台专用技能创建 MR/PR,明确源分支与目标分支,避免重复创建。

使用方式

用户提出 cherry-pick 请求后,技能先推断意图并展示一份推断出的计划,仅在歧义会影响结果时提问,不要求用户填写表单。确认后依次执行:比较源与目标、筛选提交、从目标分支创建工作分支、按顺序 cherry-pick、处理冲突、验证范围、推送并创建或更新 MR/PR。创建后重新读取 MR/PR,核对源与目标、状态、显示的 SHA、文件数量和检查结果是否与已验证范围一致。

安全边界

  • 不假设分支名、工单前缀、站点、环境或托管服务商。
  • 保留无关的本地改动,必要时使用临时工作树。
  • 不修改环境文件、密钥、证书、私钥或生成的本地备份。
  • 不强制推送、不改写已发布历史,未经明确许可不直接合并到受保护分支。
  • 该技能默认只准备并发布一个聚焦分支,不执行完整分支合并或最终合并。
  • 不自动关闭或删除其他请求,除非用户授权替代。

适用场景与限制

适用于需要精确挑选少量提交、回迁工单修复、在分支间移动选定改动的日常工作。限制包括:不负责完整合并;推送成功不等于 CI 通过或合并完成;若托管服务显示过期状态,需重新获取或轮询一次后再报告成功;对于合并提交不猜测主线。