Git-Flow中未关闭发布分支时创建新分支的最优方案咨询
Git-Flow冻结期多Release分支处理方案
针对你遇到的场景,最优方案是先同步现有Release分支的独有修正到Develop,再手动创建测试用Release分支,无需严格遵循Git-Flow工具的单Release分支限制,具体步骤如下:
1. 同步现有Release分支的修正到Develop
先把仅存在于当前Release分支的修正同步到Develop,确保新测试分支能继承这些关键修复:
- 切换到Develop分支:
git checkout develop - 合并现有Release分支的所有变更(用
--no-ff保留合并历史,便于追溯):
如果仅需同步特定几个修复提交,可改用git merge --no-ff release/vX.X.Xcherry-pick(先通过git log release/vX.X.X获取目标提交哈希):git cherry-pick <commit-hash-1> <commit-hash-2> - 解决合并/cherry-pick产生的冲突,完成提交:
# 合并冲突解决后 git commit # cherry-pick冲突解决后 git cherry-pick --continue
2. 手动创建测试用Release分支
Git-Flow工具的单Release限制是规范建议,实际场景可灵活调整,直接从更新后的Develop创建测试分支:
- 创建并切换到测试用Release分支(命名建议加标识区分,比如带
-test后缀):git checkout -b release/vY.Y.Y-test develop - 正常在该分支开展测试、bug修复,流程和正式Release分支一致。
3. 冻结期结束后的收尾
- 原Release分支:部署到生产环境后,按Git-Flow规范合并到
master和develop,再删除该分支:git checkout master git merge --no-ff release/vX.X.X git tag -a vX.X.X -m "Release vX.X.X" git checkout develop git merge --no-ff release/vX.X.X git branch -d release/vX.X.X - 测试用Release分支:
- 如果测试通过需上线:将分支上的新修复合并到Develop,之后可基于此创建正式Release分支;
- 如果无需上线:直接删除该测试分支即可。
内容的提问来源于stack exchange,提问作者alegorth
相关产品推荐
相关产品推荐

