跳过至内容
GitHub Stacked PRs 搜索 ` `Ctrl``K` `取消概述 快速开始 命令行界面 (CLI) 用户界面 (UI) 常见问题解答 (FAQ)概述 快速开始 命令行界面 (CLI) 用户界面 (UI) 常见问题解答 (FAQ)选择主题 深色 浅色 自动Stacked PRs 目前处于私有预览阶段。加入等待列表 →
GitHub Stacked PRs 是什么?
借助原生 GitHub 支持和 `gh stack` 命令行界面 (CLI),可将大型变更拆分为相互依存、易于审查的小型拉取请求 (PR)。 快速开始 概述
原生支持的 GitHub Stacked PRs
可以把拉取请求按顺序排列成一个栈,随后一键合并所有请求。每个 PR 代表变更的一个聚焦层面,能够独立审查并一起落地。
简化的栈管理
在 GitHub 用户界面中,能够在栈中的各个 PR 之间导航,一眼查看每个层面的状态,还能通过一键操作触发整个栈的级联变基 (rebase)。
强大的命令行界面
`gh stack` 命令行界面能让你轻松创建栈、执行级联变基、推送分支并创建 PR,还可在终端中于各层面间导航。
AI 代理集成
运行 `npx skills add github/gh-stack` 可让你的 AI 编码代理学会处理栈。可以将大型差异拆分为栈,或者从一开始就使用栈进行开发。
为何选择 Stacked PRs?
大型拉取请求存在审查难、合并速度慢且易产生冲突的问题。审查人员容易丢失上下文,反馈质量下降,整个团队的工作效率也会降低。Stacked PRs 通过将大型变更拆分为一系列相互依存、聚焦的小型拉取请求来解决这个问题,每个请求都可以独立审查。
在栈中排列 PR
栈是同一仓库中的一系列拉取请求,每个 PR 都以其下方 PR 的分支为目标,形成一个有序的链条,最终合并到主分支。GitHub 对栈提供端到端支持:拉取请求界面会显示栈地图,方便审查人员在各层面间导航;分支保护规则会应用于最终目标分支(而不仅仅是直接基础分支);栈中的每个 PR 都会像以最终分支为目标一样运行持续集成 (CI) 测试。
工作原理
`gh stack` 命令行界面负责处理本地工作流程,包括创建分支、管理变基、推送到 GitHub 以及创建具有正确基础分支的 PR。在 GitHub 上,PR 界面为审查人员提供必要的上下文信息,如用于导航的栈地图、每个层面的聚焦差异以及规则的正确执行。当你准备好合并时,可以合并整个栈或其中一部分。每个 PR 可以直接合并,也可以通过合并队列进行合并。合并后,栈中剩余的 PR 会自动进行变基,使未合并的最低 PR 以基础分支为目标。
开始使用
终端窗口
# 安装 CLI 扩展
gh extension install github/gh-stack
# (可选)将 `gh stack` 别名为 `gs` 以便使用
gh stack alias
# 开始一个栈(创建并切换到第一个分支)
gs init auth-layer
# ... 进行提交 ...
# 在栈中创建新的层面(创建并切换到每个新分支)
gs add api-routes
# ... 进行提交 ...
gs add frontend
# ... 进行提交 ...
# 推送所有分支
gs push
# 打开一个 PR 栈
gs submit准备好深入探索了吗?可以从 快速开始指南 入手,或者阅读 完整概述。