能否在GitHub中将Hotfix分支同时合并至Develop和Main分支?
解决GitHub上GitFlow Hotfix分支同时合并到Main和Develop的问题
方案1:创建两个独立PR(最直接的官方方式)
GitHub PR确实只支持单目标分支,但你可以针对同一个Hotfix分支创建两个PR:
- 第一个PR目标选
main分支,走完审核、CI流程后合并,这符合GitFlow里Hotfix先修复生产分支的逻辑 - 第二个PR目标选
develop分支,同样走审核流程后合并 - 如果合并
main后develop出现冲突,直接在PR里解决冲突再合并就行,所有操作都在GitHub上完成,不用本地折腾,还能保留完整的PR审核记录
方案2:用GitHub Actions自动同步合并
如果不想手动开两个PR,可以写个简单的GitHub Action,实现Hotfix合并到main后自动同步到develop:
- 在仓库的
.github/workflows目录下新建一个hotfix-sync.yml文件 - 写入以下配置(可按需调整):
name: Sync Hotfix to Develop on: push: branches: [main] jobs: sync: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Merge main to develop run: | git config user.name "GitHub Actions" git config user.email "actions@github.com" git checkout develop git merge main --no-ff git push origin develop
这个Action会在main分支有新推送时自动把main合并到develop,刚好匹配GitFlow中Hotfix合并到main后同步到develop的流程。如果遇到冲突,Action会失败,这时你可以手动在本地解决冲突后推送到develop,冲突处理建议手动操作更稳妥。
方案3:优化你当前的本地合并流程
如果你还是习惯本地操作,可以不用关闭PR:
- 先在GitHub开一个目标为
main的PR,走完审核后合并 - 本地拉取最新的
main和develop分支 - 本地切换到
develop,执行git merge main解决冲突后推送到远程 - 若之前开了目标为
develop的PR,PR会自动检测到合并完成,直接关闭即可
内容的提问来源于stack exchange,提问作者dontStayHere
相关产品推荐
相关产品推荐

