什么是主分支和发布分支?

时间:2013-12-24 05:38:11

标签: git git-flow

我的英语不够理解git flow

的解释

为了我的理解。

Master branch适用于现成产品,可由用户在市场上下载。

但是有一个release branches我没有想法这些分支是为谁发布的?

为客户发布?还是质量保证?

http://www.flickr.com/photos/appleboy/5488984404/

3 个答案:

答案 0 :(得分:45)

simplified git workflow

一旦develop获得了足够的发布功能(或预定的发布日期即将到来),您就可以将发布分支从发布中分离出来。创建此分支将启动下一个发布周期,因此在此之后不能添加任何新功能只有错误修复,文档生成和其他面向发布的任务才能进入此分支(还包括测试。一旦准备好发布,该版本将合并到主服务器并标记版本号。此外,它应该合并回进入开发,自发布以来可能已经取得了进展。

使用专用分支准备版本可以让一个团队完善当前版本,而另一个团队继续为下一个版本开发功能。它还创建了明确定义的开发阶段(例如,很容易说,“本周我们正在准备版本4.0”并实际在存储库的结构中看到它。)

分支机构的更多信息here

答案 1 :(得分:12)

如原始post by V.Driessen中所述:

Master 是永久分支,始终反映生产就绪状态。所以,是的,它适用于可由用户在市场上下载的现成产品。

发布是支持准备新版本的临时支持分支。这意味着主要是由minas指出的bug修复,文档等。

答案 2 :(得分:7)

在您链接的图表中,是的,master用于发布给用户的“现成产品”。 (但并非所有人都以这种方式使用master。)

在图表中,每次团队准备新的“现成产品”版本时,他们都会创建一个新的“发布”分支。虽然他们正在准备发布,但他们没有为“发布”分支添加任何新功能 - 添加新功能可能会导致新的错误,他们正试图让“发布”版本在上市之前尽可能稳定。他们确实将“提交”添加到“发布”分支以修复在最终测试期间发现的任何问题,弄清楚粗糙点等。因此,创建“发布”分支标记“功能冻结”点 - 他们决定只有他们已经开发的功能将进入下一个公开发布。

一旦他们准备好使用新版本的产品上市,他们会将“发布”分支合并到master并标记用于构建可公开下载的产品的提交。 (如果他们发布版本1.0,他们可能会标记提交1.0,依此类推。)

同时,当他们处理新功能时,他们会创建新的“功能”分支(从develop分支出来)并提交给他们。当新功能正常工作时,它们会将其分支合并回developdevelop始终向前发展。