SuperAPI AI 工具集

gh-stack

编程与开发

查看项目

更新于 10-16 00:24

技能介绍

用途:gh-stack 是 GitHub CLI 扩展,用于管理堆叠分支和堆叠 PR。堆叠是以主干为根的有序分支链,每个分支基于其下一层分支并对应一个 PR,审查者只看到该层差异。gh stack 按主干优先从左到右打印,如 (main) <- auth <- api <- frontend,左侧为底、右侧为顶,auth 先合并,frontend 最后合并。

安装与配置:gh extension install github/gh-stack;建议 git config rerere.enabled true 与 git config remote.pushDefault origin(多远程仓库必需)。

主要能力:init 创建堆叠并检出分支;add 添加下一层;submit --auto 推送所有分支并创建草稿 PR(加 --open 创建可审查 PR);view --json 输出 JSON;sync 拉取、与 GitHub 对账、变基、推送并刷新 PR 状态,--prune 删除已合并 PR 的本地分支;rebase --upstack 重放上层分支;merge <目标> --yes 合并指定 PR 及其下方未合并 PR,或整个堆叠,支持 --squash、--merge、--rebase、--merge-method。

非交互使用:管道下多数命令会报错或输出静态文本,PTY 下会打开提示或全屏 TUI 并阻塞,因此应显式传参,如 gh stack view --json、gh stack submit --auto、gh stack init <branch>...、gh stack add <branch>、gh stack checkout <target>、gh stack up/down/top/bottom。多远程时 push、submit、sync、rebase、link 必须加 --remote <name>,除非已配置 remote.pushDefault;checkout 与 trunk 无 --remote 标志,依赖该配置。

限制:堆叠严格线性,一个父分支最多一个子分支,并行工作需用独立堆叠;没有非交互的重排或移除,modify 仅 TUI;PR 标题与正文自动生成,之后用 gh pr edit 修改。退出码 0 成功、2 不在堆叠、3 变基冲突、4 GitHub API 失败、5 参数无效、6 需消歧、7 变基进行中、8 堆叠文件锁定、9 仓库未启用堆叠 PR、10 需 modify 恢复。gh stack <command> --help 为权威说明,gh stack help <command> 不可用。