Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 主分支和发布分支的用途是什么?_Git_Git Flow - Fatal编程技术网

Git 主分支和发布分支的用途是什么?

Git 主分支和发布分支的用途是什么?,git,git-flow,Git,Git Flow,“主分支”是指已准备好并可由最终用户下载的产品 但是有“发布分支”——我不知道这些分支是为谁服务的。为客户发布?质量保证 在您链接到的图表中,是的,master用于发布给用户的“现成产品”。(但不是每个人都这样使用master) 在图中,每次团队准备一个新的“ready product”版本时,他们都会创建一个新的“release”分支。当他们准备发布时,他们不会在“发布”分支中添加任何新功能——添加新功能可能会导致新的bug,他们正试图在“发布”版本公开之前使其尽可能稳定。他们确实向“发布”分

“主分支”是指已准备好并可由最终用户下载的产品

但是有“发布分支”——我不知道这些分支是为谁服务的。为客户发布?质量保证


在您链接到的图表中,是的,
master
用于发布给用户的“现成产品”。(但不是每个人都这样使用
master

在图中,每次团队准备一个新的“ready product”版本时,他们都会创建一个新的“release”分支。当他们准备发布时,他们不会在“发布”分支中添加任何新功能——添加新功能可能会导致新的bug,他们正试图在“发布”版本公开之前使其尽可能稳定。他们确实向“发布”分支添加了承诺,以修复在最终测试期间发现的任何问题,磨光粗糙点等。因此创建“发布”分支标志着“特性冻结”点——他们决定只有他们已经开发的特性才能进入下一个公共发布

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

同时,在开发新功能时,他们创建新的“功能”分支(从
开发
分支)并提交给它们。当一个新功能开始工作时,它们将其分支合并回
develope
<代码>开发总是在前进。

一旦
develope
获得了足够的发布特性(或者预定的发布日期即将到来),您就可以从develope分支出一个发布分支。创建此分支将开始下一个发布周期,因此在此之后不能添加新功能。此分支中只应包含bug修复、文档生成和其他面向发布的任务(还包括测试)。一旦准备好发布,该版本就会合并到master中,并用版本号进行标记。此外,它应该重新合并到develope中,develope可能自发布启动以来就已经取得了进展

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


分支机构的更多信息,如原文所述:

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


发布是一个临时支持分支,用于支持新产品发布的准备。正如minas所指出的,这主要意味着bug修复、文档等。

您使用了什么来创建此图表?如果有人打开请求合并到您的主分支中怎么办?@RicardoTribaldos在这种情况下,您也不允许合并,github、gitlab或任何其他服务中都有一些部分,您可以在其中配置要合并的规则,以及可以合并的分支。还有代码审查。@PylypLebediev正常的做法是从开发中获取最新的更新版本,创建发行版/分支,然后将发行版合并到master和develop中。@DanielHarms可以从中找到图像,感谢您的详细回答,请进一步澄清此步骤:“他们合并了”发行版“分支到master并标记用于构建可公开下载产品的提交。”此版本(从master构建)是否需要再次测试(最终版)根据QA?因为通过合并可能会发生意外情况,环境会配置…@ThinkTwiceCodeOnce,这取决于您的工作流程的详细信息。如果您只允许master通过合并发布分支向前移动,那么在
master
上决不能有不在最新发布分支上的提交。或者,您可以d直接将提交添加到
主版本
,但在执行此操作时,请确保总是将提交添加到下一版本分支。将提交添加到
主版本
而不将其添加到下一版本分支是没有意义的。哪个答案正确?