我的英语不够理解git flow
为了我的理解。
Master branch
适用于现成产品,可由用户在市场上下载。
但是有一个release branches
我没有想法这些分支是为谁发布的?
为客户发布?还是质量保证?
答案 0 :(得分:45)
一旦develop
获得了足够的发布功能(或预定的发布日期即将到来),您就可以将发布分支从发布中分离出来。创建此分支将启动下一个发布周期,因此在此之后不能添加任何新功能。只有错误修复,文档生成和其他面向发布的任务才能进入此分支(还包括测试。一旦准备好发布,该版本将合并到主服务器并标记版本号。此外,它应该合并回进入开发,自发布以来可能已经取得了进展。
使用专用分支准备版本可以让一个团队完善当前版本,而另一个团队继续为下一个版本开发功能。它还创建了明确定义的开发阶段(例如,很容易说,“本周我们正在准备版本4.0”并实际在存储库的结构中看到它。)
分支机构的更多信息here
答案 1 :(得分:12)
如原始post by V.Driessen中所述:
Master 是永久分支,始终反映生产就绪状态。所以,是的,它适用于可由用户在市场上下载的现成产品。
发布是支持准备新版本的临时支持分支。这意味着主要是由minas指出的bug修复,文档等。
答案 2 :(得分:7)
在您链接的图表中,是的,master
用于发布给用户的“现成产品”。 (但并非所有人都以这种方式使用master
。)
在图表中,每次团队准备新的“现成产品”版本时,他们都会创建一个新的“发布”分支。虽然他们正在准备发布,但他们没有为“发布”分支添加任何新功能 - 添加新功能可能会导致新的错误,他们正试图让“发布”版本在上市之前尽可能稳定。他们确实将“提交”添加到“发布”分支以修复在最终测试期间发现的任何问题,弄清楚粗糙点等。因此,创建“发布”分支标记“功能冻结”点 - 他们决定只有他们已经开发的功能将进入下一个公开发布。
一旦他们准备好使用新版本的产品上市,他们会将“发布”分支合并到master
并标记用于构建可公开下载的产品的提交。 (如果他们发布版本1.0,他们可能会标记提交1.0
,依此类推。)
同时,当他们处理新功能时,他们会创建新的“功能”分支(从develop
分支出来)并提交给他们。当新功能正常工作时,它们会将其分支合并回develop
。 develop
始终向前发展。