如何使用 GitHub 拉取请求进行修补程序

How to do hotfixes with GitHub Pull Requests

警告:我对 git 和 GitHub 都很陌生。

因此,在我当前的设置中,我的团队使用 git 流修补程序(通常由 GitKraken 或 IntelliJ 等图形工具启动和完成)进行必须合并到两个分支并推送的更改在两者的上游。因此,例如流程将是:

  1. 从 master 拉取最新的
  2. 启动修补程序
  3. 提交更改
  4. 将 hotfix 分支合并到 master 和 develop 并推送到上游

我们现在正在考虑将我们的代码移到 GitHub 中,并希望开始使用 Pull Requests,原因如下:

但是对于修补程序,我不确定该怎么做,因为我要合并到两个分支但实际上是一个 "action" 所以手动创建两个拉取请求似乎很奇怪,特别是从步骤4) 在我们目前的流程中是一次点击。

有没有聪明的方法来处理这个问题?我的理想情况是按下 Pull Request 上的合并按钮只会合并到两者中,但这似乎不是一个可用的选项。

正如您所提到的,一个 Pull Request 只有 一个 目标分支,因此您无法同时将修补程序推送到 master 和 [=11] =] 通过合并一个 Pull Request。

我也很惊讶你提到你的第 4 步 - 将修补程序分支合并到 masterdevelop 并向上游推送 - 是一个动作。虽然从 hotfixmaster 的合并很有可能不会 运行 进入合并冲突,但我不能对从 hotfix 到 [= 的合并说同样的话11=] 因为它本可以在上次部署到生产环境后进行处理。

我的建议如下:

  • 创建一个从 hotfixmaster 的 PR 并让某人审查它以验证修复
  • 合并到 master 后,创建另一个从 hotfixdevelop 的 PR 并查看是否 运行 合并冲突
    • 如果是这种情况,请解决合并冲突,使 PR 最终处于要合并的状态,并让人审查 PR
    • 如果没有合并冲突,请找人审核 PR

另一种解决方案,如果您真的想走自动化路径,将同时利用 GitHub webhook 和 API.

webhook 将允许您从同一个 hotfix 分支 notified when a PR is merged. You could inspect the payload to make sure that the base branch starts with hotfix/ and the target branch is master. You could then react to that event by using the API to create a new PRdevelop

这将涉及一些开发工作,由于通过 UI 创建 PR 仍然非常简单快捷,因此付出努力可能不值得。