AI未开源软件工具

GitHub 终于上线 Stacked PR:大改动拆成链式小 PR,AI 编程时代的代码审查新姿势

2026年8月2日3 次阅读
查看堆叠状态

7 月 31 日,GitHub 正式推出 Stacked Pull Requests 公开预览。这个功能开发者们等了好几年——Facebook 用 Phabricator、Google 用内部工具早就有了,GitHub 一直没跟上。现在终于补上了,而且来得正是时候:AI 编程助手让代码产出量暴增,大 PR 审查瓶颈比以往更严重。

Stacked PR 是什么

简单说:把一个大改动拆成一串小 PR,每个 PR 只包含一层逻辑变更,PR 之间按依赖关系串成链条。

```

┌── feat/frontend → PR #3(基于 feat/api-endpoints) ← 顶层

┌── feat/api-endpoints → PR #2(基于 feat/auth-layer)

┌── feat/auth-layer → PR #1(基于 main) ← 底层

main

```

底层放基础变更(数据模型、数据库迁移),上层放依赖它们的代码(API 路由、UI 组件)。每个 PR 只显示自己那一层的 diff,审查者不用面对一整面代码墙。

为什么现在才重要

AI 编程助手(Copilot、Cursor 等)让单次会话产出大量代码变得很常见。一个 Agent 跑完可能生成几千行改动,塞进一个 PR 里基本没人能认真审。Stacked PR 给每段变更一个独立位置:Agent 完成一个任务,开一个新 PR 建在前一个上面,依赖关系自动记录。

GitHub 官方文档直接提供了 Copilot 集成教程,安装 gh-stack skill 后,Copilot Agent 可以自动创建和管理堆叠 PR。

怎么用

核心操作都在 GitHub CLI 的 gh stack 扩展里:

```bash

安装扩展

gh extension install github/gh-stack

如果要让 Copilot Agent 也能用

gh skill install github/gh-stack

初始化堆叠

gh stack init

添加新层

gh stack add BRANCH-NAME

推送所有分支

gh stack push

创建并关联 PR

gh stack submit

查看堆叠状态

gh stack view

```

也可以直接在 GitHub 网页上操作,移动端也支持。

关键能力

  • 自动级联 rebase:底层 PR 合并后,上层分支自动 rebase 到新的基础分支,不用手动同步
  • 独立审查:每个 PR 有自己的 diff,审查者可以并行审不同层
  • CI 和分支保护正常工作:不像以前手动串 PR 时 CI 只触发最底层,现在每层都能正确触发检查
  • 一键合并整串:从底层到顶层依次合并

当前限制

  • 公开预览阶段,功能可能变化
  • 不支持跨 fork 的堆叠(所有分支必须在同一仓库)
  • 不支持 GitHub Desktop
  • Merge Queue 支持将在未来几周逐步推出
  • 需要 GitHub CLI 2.90.0 或更高版本

实际场景

假设你要给应用加用户认证,可以拆成四层:

  1. 数据模型和迁移 — 最底层,定义 User 表
  2. CRUD 接口 — 增删改查端点
  3. JWT 中间件和权限守卫 — 认证逻辑
  4. 集成测试和单元测试 — 最上层

每层一个 PR,审查者可以先审数据模型,确认没问题后再看接口层,不用一口气审完整个功能。如果某层需要改,修改只影响那一层和它上面的层,不会搞乱整个分支。

---

基于 GitHub 官方文档和多家媒体转述整理。Stacked Pull Requests 正在向所有仓库逐步开放,如果你还没看到这个功能,可能需要等几天。

参考来源

评论

0 条已公开
登录注册后可以参与评论。

正在加载评论...