SuperAPI AI 工具集

git-upstream-pr-diverged

编程与开发

查看项目

更新于 10-15 23:49

技能介绍

用途:将严重分叉的 fork 中的单个提交,向上游仓库提交为干净、无回归的 PR。相比更简单的 /git:upstream-pr(适用于分叉与上游大致对齐的 cherry-pick),本技能处理直接 rebase 失败的情况。

主要能力:先做资格检查(check-eligibility.sh),判断所涉文件是否都存在于上游、内容是否为新;用 patch-id 匹配识别已在上游以不同 SHA 应用过的内容。随后准备分支(prepare-branch.sh),从上游 main/master 切出分支并 cherry-pick。冲突过多时可中止并基于上游当前文件重新推导改动。支持对重构类 PR 做预检回归检查(lint 与测试基线对比、Python 文件 ast 解析)。提供提交信息清洗(scrub-commit.sh),去除 fork 本地 issue 引用与 Claude 相关 trailer,保留 conventional-commit 前缀。最后推送并跨 fork 创建 PR。

使用方式:配置放在 .claude/upstream-pr.local.md(需 gitignore),字段可选,包括 upstream_remote、upstream_repo、branch_prefix、linter_cmd、test_cmd、pr_body_template_path。参数为必填的 <sha> 和可选的 --topic <slug>。执行流程为资格检查、准备分支、解决冲突、预检回归、清洗提交信息、检查 diff、推送并创建 PR。

适用场景:fork 与上游大幅分叉、cherry-pick 在共享模块上产生大量冲突、需要 patch-id 匹配、改动涉及可能仅存在于 fork 的文件、需要清洗提交信息、需要对照上游基线做回归检查。

限制:若存在仅 fork 独有的文件则无法独立成 PR,需先落地前置功能;若内容已在上游应用则无需提交。一个 PR 只含一个提交,需 squash。不要混入格式化清理,需保留上游原有导入顺序与缩进。具体命令与脚本路径以资料为准,未提供的收费、平台等信息暂未提供。