如何使用GitHub Pull Requests

时间:2017-02-14 15:04:05

标签: github git-flow

警告:我对git和GitHub都很新。

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

  1. 从主人那里拉最新的
  2. 启动修补程序
  3. 提交更改
  4. 将修补程序分支合并到主服务器并开发并推送上游
  5. 我们现在正在考虑将代码移入GitHub,并希望开始使用Pull Requests,原因如下:

    • CI挂钩运行测试和内容
    • 一个放置代码特定注释的地方与底层"问题没有直接关系"
    • 避免每个人不断地将最新的master / develop拉到他们的本地机器上以便他们可以合并更改

    但是对于Hotfixes,我不知道该怎么做,因为我合并为两个分支,但它确实是一个" action"所以手动创建两个拉取请求似乎很奇怪,特别是因为我们当前流程中的步骤4)只需单击一次。

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

1 个答案:

答案 0 :(得分:24)

正如您所提到的,Pull请求只有一个目标分支,因此您无法通过以下方式将修补程序推送到masterdevelop合并一个Pull请求。

我也很惊讶你提到你的步骤#4 - 将修补程序分支合并到masterdevelop并推送上游 - 是一个动作。虽然从hotfixmaster的合并很可能不会遇到合并冲突,但我对hotfix合并的说法不一样至develop,因为自上次部署到生产以来它可能已被处理过。

我的建议如下:

  • hotfix创建一个PR到master并让某人审核以验证修复
  • 一旦合并到master,请从hotfix创建另一个PR到develop,看看是否遇到合并冲突
    • 如果是这种情况,请解决合并冲突,以便PR最终处于要合并的状态,并让某人审核PR
    • 如果没有合并冲突,请让某人审核PR

另一种解决方案,如果您真的想要沿着自动化路径走下去,那就是利用GitHub webhooks和API。

webhook允许你成为notified when a PR is merged。您可以检查有效负载以确保基本分支以hotfix/开头,目标分支为master。然后,您可以使用从同一hotfix分支到develop的{​​{3}} API来对该事件作出反应。

这将涉及一些开发,并且努力可能不值得,因为通过UI创建PR仍然非常容易和快速。