最新消息:关注人工智能 AI赋能新媒体运营

GitHub 原生支持堆叠式 PR 工作流,提供 gh stack CLI 和 PR 堆叠视图

科技资讯 admin 浏览

GitHub宣布原生支持堆叠式拉取请求(Stacked Pull Requests)工作流程,并同步推出名为 gh stack 的 GitHub CLI 扩展工具,以及 PR 页面的 Stack Map 界面。该功能目前处于私人预览阶段。

堆叠式PR是一种将大型代码变更拆分为多个相互依赖拉取请求的开发方式。在这种结构中,最底层的PR以主分支(Main)为目标,其上每一层PR都以下一层的分支为基底,形成有序的依赖链。每个PR代表一个可独立审查的原子性变更,使审查者能够逐层查看,而无需一次性面对大量代码。

过去GitHub并未原生支持这种工作模式,开发者若要采用堆叠式PR,往往需要依赖第三方工具,或手动处理繁琐的分支同步与变基(Rebase)操作。

此次官方整合方案包括PR界面与本地开发两部分。在PR界面方面,当一个PR属于某个堆叠时,页面顶部会显示Stack Map,呈现整个堆叠的结构与各层状态,并支持点击跳转至任意层级。规则与CI的执行逻辑也进行了调整:堆叠中各PR的合并条件,均以最底层PR的基底分支为准,通常是Main,因此分支保护规则与CI检查都会对堆叠中的每一个PR生效,而不仅限于最底层PR。

堆叠中的PR必须自下而上依次合并,支持直接合并与合并队列两种方式。在直接合并时,系统会在所有条件满足的前提下,自动将该PR及其下方所有未合并的PR一并处理。合并队列则具备堆叠感知能力:若最底层PR被移出队列,其上所有PR也会自动一同移除。

自动变基是此功能的另一大重点。过去手动管理多个依赖分支的变基操作是堆叠式PR最耗时的环节。GitHub在PR界面新增了“变基”按钮,可对整个堆叠执行联动变基;在CLI端则对应 gh stack rebase 命令,实现相同操作。当底层PR完成合并后,其余分支会自动执行变基,确保上层PR直接基于Main分支,可立即进入审查与合并流程。

gh stack CLI 提供了本地开发端的完整工作流支持,涵盖创建分支、推送到远程、建立或更新PR,以及在各层级间切换导航等全部操作。GitHub说明,使用堆叠式PR并不强制要求安装CLI,但CLI能显著简化整体流程。