SuperAPI AI 工具集

stack-merge

部署与运维

查看项目

更新于 10-16 09:50

技能介绍

用途:把整条 Graphite downstack 一次性以管理员绕过保护的方式快进推送到 main,然后逐个关闭范围内的 PR。它替代 Graphite 合并队列,产生线性历史且所有 PR 都被合并,但不必等待队列。

主要能力:按 baseRefName 遍历枚举合并路径上的 PR;gt sync 同步;解冻被冻结分支;gt restack --downstack 级联重基;只读校验门(快进安全、提交取舍、分歧、提交卫生、冲突预览);确认门后批量 --force-with-lease 推送并快进推送 main;最后并行关闭所有 head 已可从 main 到达的 PR 并清理。它不逐 PR 跑 CI、不在 main 产生合并提交、不用 gh pr merge 逐个合并;PR 会以 Closed(而非 MERGED)状态结束,除非其 base 原本就是 main。

使用方式:前提为对 main 有管理员/绕过权限、已初始化 Graphite(gt ls 可运行)、工作区干净、worktree 正常。流程分 8 个阶段,每阶段有校验或确认门,仅在用户明确批准后才写入。脚本包括 scripts/list_merge_path.sh、scripts/validate.sh、scripts/detect_ralph.sh、scripts/exec_merge.sh(需 --confirm)。关键命令按原样使用:gt sync --no-interactive、gt unfreeze <branch>、gt restack --downstack、git push origin --force-with-lease <branch1> <branch2> ... <target>、git push origin origin/<target>:main。

适用场景:希望得到 Graphite 队列的结果(线性历史、所有 PR 落地)但不想排队时。

限制与注意:非管理员会被拒绝推送;若栈顶 CI 失败且用户在意,应暂停;冲突要交给用户解决后再 gt continue;绝不可跳过快进安全检查;gt ls 的可视顺序不代表 PR 父级,须用 baseRefName;gt sync 会静默跳过冻结分支;所有强制推送必须用 --force-with-lease;第 8 阶段要显式关闭 PR。未提供的功能、收费、平台等信息暂未提供。