GitHub 原生支持堆叠式 PR 了

查看原文 HN 讨论

文章摘要

2026 年 7 月 30 日,GitHub 在 changelog 中宣布:堆叠式 Pull Request(stacked pull requests)进入公开预览。

所谓「堆叠」,就是把一个大改动拆成一串有序的、彼此依赖的小 PR,每个 PR 代表这次改动的一个聚焦层次。每个 PR 的目标分支指向它下面的那一层,从而形成一个栈。GitHub 给出的价值主张有三点:其一,让大改动持续推进——评审者可以并行地评审多个范围极窄的短 PR;其二,逐层保证质量——每一层都走聚焦的 PR review,配合现有的分支保护规则来守住 main;其三,合并粒度自由——可以一键落地整个栈,也可以一层一层单独合并。因为堆叠式 PR 是内建在 GitHub 里的,现有的 review、CI 检查、合并要求全都开箱即用。

合并语义是这次设计的核心。合并栈里最新的那个「ready」PR,会连同它下面所有未合并的层一起在一次操作中落地。如果只想落地栈的一部分,就合并底下的一层或几层,上面的 PR 保持打开状态,并自动 rebase 和重新指向新的目标分支。已有的分支保护和必需检查依然决定什么能进入 main

工具链方面,GitHub 提供了 CLI 扩展,gh extension install github/gh-stack 就能装上,官方说一分钟内就能建出第一个栈。你可以在 github.com、GitHub CLI、GitHub 移动端上操作栈,也可以通过 gh-stack skill 让 GitHub Copilot 这类编码 agent 来操作。评审时打开栈中任意一个 PR,只会看到那一层的 diff,PR 顶部有一张「栈地图」显示你正在看的这块改动在整体工作中的位置。

changelog 里引用了三段客户证言,其中两段直白地把这个功能和 AI 编程联系在了一起。Vercel 的 Next.js 负责人 Tim Neutkens 说他们已经用了几个月,在交付大功能的同时能引入更小的单个改动。TED 的 CTO Andy Merryman 说得最直接:「AI 让 TED 的开发者生产力大幅提升,但这制造了一个新瓶颈——PR 大到评审者根本吃不消。堆叠式 PR 帮我们解决了这个问题。」jQuery 作者 John Resig 则称赞把 5 个堆叠 PR 一次性推进合并队列的体验「A+++」。

功能会在接下来几天内向所有仓库滚动发布,合并队列(merge queue)对堆叠 PR 的支持会在随后几周内逐步推出。

HN 评论精华

GitHub 官方派人下场是这条讨论的一大特色,而讨论本身大致分成「终于来了」「这不就是精心整理的 commit 吗」「预览版 bug 太多」三派。

官方现身与产品细节

「这和好好整理 commit 有什么区别」

这是最大的一条讨论串(51 条子回复),由 Okkef 发起:「相比一组精心整理的 commit、逐 commit 评审,这种堆叠 PR 的好处是什么?我觉得更大的问题是大体量 AI PR 需要一种不同的评审方式——比如 diff 的展示顺序就能极大影响可读性(先看函数定义的变化、再看所有调用点、最后看测试)。也许我们该走向一种 diff 与评论交织的系统,有点像『文学式编程』把代码和散文交织起来。文学式 diff、文学式 PR……我还没找到类似的东西。」

和 AI 的关系

预览版的真实状况

其他生态与反对意见