堆叠 PR 仅支持 GitHub.com 代码仓库。GitHub
Enterprise Server、GitLab 和其他提供商不提供堆叠 PR API。
堆栈 的工作原理
- PR 按从下到上的顺序排列。最底层的 PR 以你的主干分支 (例如
main) 为目标分支;其余每个 PR 的基分支都是其下方 PR 的头分支。 - 由于每个 PR 都与其下方的层进行 diff,因此只会显示自身的变更,不会混入上层或下层的内容。
- 堆栈 按从下到上的顺序合并。合并堆栈 中的一个 PR 时,会以原子方式在一次操作中合并其下方所有 Open PR。随着较低层的 PR 被合并,GitHub 会自动将其余 PR 的目标分支重新定向为主干分支。
Devin 创建堆栈 的时机
- 在创建任何 PR 之前,公布堆栈 的名称,以便你能在会话中看到这一系列工作逐步成形。
- 将每个 PR 都创建为常规且聚焦的 PR——各自拥有独立的描述和 CI,并以其下方 PR 的头分支作为目标分支。
- 在 PR 创建完成后,在 GitHub 上将这些 PR 归组为一个堆栈。
保持堆栈同步
- 冲突解决 — 如果任何一层与其下方的分支发生合并冲突 (例如,较低层合入审查反馈后,或主干在堆栈下方发生变动) ,Devin 会自动收到通知并静默解决冲突。只有当冲突涉及需要你决定的实质性问题时,它才会询问你。
- 整个堆栈的 CI — Devin 会监控每一层的 CI,并在出现失败时进行修复,跟踪整个系列的就绪状态,而不是逐个盯着 PR。
- 自动重新定向 — 随着堆栈底部的 PR 被合并,GitHub 会将其余 PR 重新定向到主干。无需手动管理变基操作。
使用堆栈 PR
- 要求 Devin 将大型改动拆分为一组堆栈 PR,或将工作保留为单个 PR。
- 要求 Devin 将后续 PR 添加到现有堆栈的顶部。
- 要求 Devin 检查堆栈的状态——它会报告每一层的状态、CI、审查结论和可合并性。
- 要求 Devin 取消堆栈——堆栈将被拆除,其中尚未合并的 PR 会重新成为独立 PR,分支保持不变。已合并的层仍保持合并状态。
审查和合并堆叠 PR
限制
- 仅支持 GitHub.com — GitHub Enterprise Server、GitLab、Bitbucket 和 Azure DevOps 均不支持堆栈。
- 堆栈大小 — 每个堆栈包含 2 至 100 个 PR。
- 合并 — 堆叠 PR 无法通过 GitHub 的常规合并流程合并;必须通过堆栈合并,将所选 PR 及其下方所有处于 Open 状态的 PR 一并合并。

