Stacked Pull Requests 模式在从 fork 到父 repo 进行 PR 时如何使用?
当我们需要将一个大的功能拆分成小的可审查的 PR 时,我经常使用这种模式。在一个 repo 中,它只需要在子分支之间进行 PR,这非常简单。但是当我想在 repos 之间创建 PR 时,我找不到如何实现它。
例如,我想创建一个 PR 来修复 Timeline 组件的 Tab 键顺序,但此更改取决于修复横向箭头和菜单按钮可聚焦性的 PR。在单个回购中,我会有这样的 PR 依赖结构:
master <- sideways-fix
sideways-fix <- menu-fix
menu-fix <- tabbing-fix
但是交叉回购 PR 允许我只选择
master
分支作为目标。这导致拥有 3 个 PR:
master <- sideways-fix
master <- menu-fix
master <- tabbing-fix
并且最后一个 PR 与上面 2 个 PR 的变化重叠这使得它更大并且更难审查。
虽然这没有得到直接支持,但自 2021 年 10 月以来,有一个 Pull Request Merge Queue Limited Beta 正在进行中(现在,2023 年 2 月,在 GA:一般可用性)。
更多的是并行验证标识为“准备好合并”的拉取请求的不同组合,以便拉取请求可以有效地合并,并且没有当今合并之间存在的典型延迟。
所以,不完全是您的用例,但很接近,因为您不必在合并 PR 之前对其进行变基。
realyze/pr-train
可以帮助:
git pr-train 在您需要将长 PR 拆分成较小的 PR 时帮助您管理 PR 链。
如果你有一个 PR 链,
:git pr-train
确保链中的所有分支在您修改其中任何一个时都得到更新 使用目录为您创建 GitHub PRs