我现在使用 gitflow 策略和 github 作为远程存储库。
最近我遇到了将修补程序 PR 合并到开发分支和主分支中的问题。
Github 似乎只支持 PR 的一个目标分支,并且不知道该分支是功能分支还是修补程序分支。
目前,我只是关闭PR并将它们合并到本地并推送到远程。
是否有人有好主意或 github 功能,我可以使用它来将修补程序分支同时合并到开发分支和主分支?
提前致谢。
最佳答案
请注意,一个 PR = 一次合并。您只需要两个单独的 PR,一个将 hotfix
合并到 main
中,另一个将 hotfix
合并到 develop
中。关于代码审查,最好是 Git Flow Hotfix branch也是一个 protected 分支,它本身需要进行代码审查。例如:
- 当您意识到需要修补程序时,您可以从
main
创建一个分支,例如hotfix-1.2.3
(或hotfix/1.2.3
)。保护分支,以便 PR 需要合并到其中,就像develop
和main
一样。 - 使用普通 PR 将功能分支与修补程序提交合并到
hotfix
分支中。 - 测试
hotfix
分支。 - 部署修补程序,并将
hotfix
合并到main
和develop
中。这两个合并是“Git Flow”合并,可以自动化并绕过 PR 流程。或者您可以为这两个合并再创建 2 个 PR。请注意,这 2 个 PR 不需要像步骤 #2 中的 PR 那样定期进行代码审查。由于这些 PR可以自动化,因此如果您需要人工批准,他们可能只需进行快速健全性检查以确保合并正确。
关于:
Currently, I just close PR and merge them in local and push it to the remote.
这样做会起作用,并且与步骤 #4 中描述的自动执行 2 次合并是一样的。如果您走这条路,我建议您编写脚本,以便它可重复且不易出错。请注意,当出现合并冲突时,无论如何都需要手动干预。
提示:使用 Git Flow 时,我个人在完成 release
和 hotfix
分支时的偏好是首先将它们合并到 main
,然后将 main
合并到 develop
中(而不是将发布或修补程序分支也合并到 develop
中)。这样做在功能上是等效的,只不过 main
上进行的合并提交会立即转到 develop
,而不是与下一个 hotfix
一起进行。这种方式稍微干净一些,这也意味着 develop
和/或您的 release
分支始终与 main
完全保持同步,在两个 < em>状态和提交。 (按照 Git Flow 记录的方式进行操作只会使状态保持最新。)
关于github - 是否可以将修补程序分支合并到 Github 中的开发分支和主分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76214596/