假设我有一个场景:
我有 2 个分支:master(default)和 patch,两者都是实时分支 我从 patch 分支创建了一个主题分支,并想要创建一个 PR。当我创建 PR 时,它会尝试合并到 master 中,因为这是默认的。
我可以手动更改此设置,这已在许多帖子中得到回答。
https://github.blog/2016-08-15-change-the-base-branch-of-a-pull-request/
但我想知道有什么方法可以自动化这个过程吗?在这种情况下,可以使用钩子会很有用。因此,每当我创建 PR 时,它都会自动尝试将 PR 合并到其特定的基本分支中,而不是手动尝试通过编辑基本分支来覆盖它。
我遇到了类似的问题,发现以下解决方案很有用:
当您删除分支时,依赖于该分支作为基础的 PR 将更新为已删除分支的基础。
GitHub 有一个功能,可以在合并时自动删除头分支 - 这会产生副作用,即“堆叠”PR(即使用已删除分支作为基础的 PR)会自动更新到合并 PR 的基础。
参见:
注意:如果您在合并拉取请求后删除头分支,GitHub 会检查同一存储库中是否有任何打开的拉取请求将已删除的分支指定为其基本分支。 GitHub 会自动更新任何此类拉取请求,将其基本分支更改为合并的拉取请求的基本分支。欲了解更多信息,请参阅“关于分支机构”
并激活合并时自动删除头分支:
处理此问题的另一种方法是使用 ezyang 的
ghstack
。这需要一些时间来适应,但它将处理分支的堆叠并创建具有有意义的差异的 PR。