有没有人知道是否可以改变git流来使用超过3个分支?
目前我们使用std工作流:
dev -> feature/* -> dev
dev -> release/* -> master
master -> hotfix/* -> master & dev然而,我们的设置现在已经大幅度扩展,并且正在寻找以下工作流
dev -> feature/* -> dev
dev -> stage/* -> staging
staging -> bug/* -> staging
staging -> release/* -> master & dev
master -> hotfix/* -> master & staging & dev修改后的工作流将使devs能够继续构建和共享新功能,甚至在分阶段发布的测试过程中也是如此。此外,还可以让其他开发人员修复即将发布的任何问题。
发布于 2016-10-07 00:50:56
有可能吗?是的,你可以用任何你想要的程序。Git流是(1)关于如何在Git中使用分支的一组指南,(2)一组用于自动化实现这些指南的脚本。在这个答案中,我将重点讨论(1),但是扩展脚本以帮助您实现所选的解决方案应该很简单。
在标准工作流中缺少一件事:
dev -> feature/* -> dev
dev -> release/* -> master (& dev)
master -> hotfix/* -> master & dev也就是说,需要将release分支合并回dev (如果它们有提交的话)。
新设置需要类似的修复:
dev -> feature/* -> dev
dev -> stage/* -> staging (& dev)
staging -> bug/* -> staging (& dev)
staging -> release/* -> master (& staging) & dev
master -> hotfix/* -> master & staging & dev正如您所看到的,必须进行的合并数呈指数增长。
我有两个备选建议,一个是关于标准工作流的轻微旋转,另一个是我目前正在为项目使用的更简单的扩展工作流。
标准Git流
同样,作为参考,标准的Git流工作流是:
dev -> feature/* -> dev
dev -> release/* -> master (& dev)
master -> hotfix/* -> master & dev不要使用专用的长期staging分支部署到您的暂存环境中,而是设置您的CI/CD系统以自动部署到任何最新的release分支的暂存中。
我推荐这个选项,因为它使事情保持最简单,但可能很难设置您的CI系统来部署最新的release分支。
纯FF生产
以下是这个设置的概述:
dev -> feature/* -> dev
dev -> release/* -> staging (& dev)
staging -> hotfix/* -> staging & dev
staging -> --ff-only -> master此设置对于需要非常稳定的生产部署非常有用。请注意,没有任何东西被合并到master中;即使是hotfixes也被合并到staging中。当release或hotfix在暂存阶段上进行测试时,请执行此操作以更新生产:
git checkout master
git merge --ff-only staging
git push origin master这个工作流与您建议的工作流非常接近,但是仍然大大减少了合并的数量,而且还需要对标准的git流脚本进行很少的更改。
https://stackoverflow.com/questions/39905007
复制相似问题