GitHub近日发布了堆叠PR(Stacked PRs)功能,该功能目前处于私有预览阶段,旨在帮助开发者更轻松地管理大型拉取请求,并加快整个代码审查流程。
堆叠PR允许一个拉取请求基于前一个拉取请求构建,从而形成一条"堆叠链"。链中的每个拉取请求都可以独立进行审查和合并,但前提是其下方的所有拉取请求均已完成合并。此外,用户也可以选择将整个堆叠一次性合并。
堆叠PR的核心优势在于鼓励开发者提交更小粒度的拉取请求,从而降低审查难度。官方文档指出:"堆叠中的每个分支应代表一个独立的、符合逻辑的工作单元,可以被单独审查。"
然而在实际开发中,这一目标往往难以实现。开发者通常希望在等待前序代码合并期间持续推进工作,而不愿因等待审查而中断进度。为此,他们往往会在独立分支上持续开发直至功能完整,最终提交一个涉及大量文件变更的巨型拉取请求,给审查工作带来极大负担。
堆叠PR功能虽然对GitHub而言是全新能力,但在其他代码管理与审查系统中早有类似实践,通常被称为"堆叠差异(Stacked Diffs)"。其中最具代表性的是由Facebook的Evan Priestley和Luke Shepard于2007年开发的Differential工具。Priestley曾表示:"我花了大量时间等待代码审查,这正是我构建这个工具的主要动力。"Differential后来成为Facebook内部工具套件Phabricator的核心组件,并于2011年以开源形式对外发布。开源版Phabricator已于2021年停止更新,但其分支项目Phorge目前仍在积极维护中。
在使用堆叠PR时,开发者的工作流程与传统方式存在显著差异。堆叠最底层的PR通常直接基于主分支创建,而非独立分支。曾在Facebook担任工程师的Jackson Gabbard(2006年至2016年)在一篇详细说明文章中写道:"使用过Phabricator堆叠差异工作流的开发者普遍非常喜爱这种方式,并且在去到新的地方后也会主动寻找类似的工具。"
在Hacker News上,社区对这一功能的讨论总体持积极态度。不过也有开发者指出:"我不太明白为什么需要这个命令行工具(CLI),Git本身近几年的更新已经可以原生支持这种工作流。"此处提及的CLI正是GitHub专属扩展工具gh stack。尽管如此,将该功能整合进GitHub仍是一项重大改进,而CLI的存在也大幅简化了使用门槛。负责该功能开发的GitHub工程师Sameen Karim表示:"CLI完全是可选的,你完全可以通过图形界面创建堆叠PR。"
在AI层面,GitHub同样有所布局。Karim在LinkedIn上表示:"瓶颈已不再是写代码,而是审查代码。堆叠PR有助于解决这一问题。"他还透露,堆叠CLI同样面向AI智能体使用场景进行了专项设计。
Q&A
Q1:堆叠PR(Stacked PRs)是什么?它解决了什么问题?
A:堆叠PR是GitHub新推出的功能,允许多个拉取请求以堆叠形式相互依赖,每个PR可独立审查和合并。它主要解决了开发者在等待代码审查时无法持续推进工作的问题,避免了因功能未拆分而提交庞大、难以审查的拉取请求的情况,从而提升代码审查效率。
Q2:堆叠PR和Phabricator的堆叠差异功能有什么关系?
A:堆叠PR的概念源于Phabricator的"堆叠差异(Stacked Diffs)"工作流。Phabricator是Facebook于2011年开源的内部工具套件,其核心组件Differential由Evan Priestley和Luke Shepard于2007年开发,专门用于解决代码审查效率问题。许多熟悉这一工作流的开发者对其评价极高,GitHub此次将类似功能整合进平台,是对这一成熟工作流的传承与发展。
Q3:使用堆叠PR必须用命令行工具(CLI)吗?
A:不是必须的。GitHub提供了专属CLI扩展工具gh stack来辅助管理堆叠PR,但负责该功能开发的工程师Sameen Karim明确表示,CLI完全是可选项,用户可以直接通过GitHub的图形界面来创建和管理堆叠PR,无需使用命令行工具。
好文章,需要你的鼓励
韩国火箭初创公司Unastella完成2400万美元B轮融资,累计融资达4400万美元。该公司于2025年5月在韩国本土成功发射UNA EXPRESS-I火箭,采用煤油液氧推进系统和电动泵技术。公司计划明年发射UNA EXPRESS-II,目标达到100公里高度。韩国政府已承诺在七年内投入2.66亿美元建设发射基础设施,支持私营航天发展。
ETH苏黎世等机构提出PaGeR,将普通照片的三维重建基础模型迁移到全景图领域,单张全景图一次输出深度、法向量、天空分割和绝对距离四种几何信息。
苹果将于6月8日WWDC上正式发布iOS 27。据悉,此次更新亮点颇多:Siri将迎来史上最大规模升级,底层采用谷歌Gemini技术支持现代AI功能;视觉智能新增扫描营养标签并导入健康App的能力;Liquid Glass界面将获优化改进;"添加到备忘录"功能大幅增强;此外,自动生成字幕已被官方确认,可为无字幕视频自动转录语音内容。
EPFL提出LACUNA系统,让AI智能体写代码后必须通过编译器类型检查才能执行,实现"全有或全无"的原子安全保障,防止AI越权操作和半途失败造成的状态污染。