开发和特性分支类型的区别是什么?



我读了几篇关于Git流最佳实践的文章。git分支有很多种类型(例如:[1],[2]):

+ Master
+ Develop
+ Feature
+ Bug
+ Proof of concept
+ Release
+ Hotfix

类型MasterRelease的区别是什么?

Feature型和Develop型的区别是什么?

[1] http://nvie.com/posts/a-successful-git-branching-model/

[2] http://developer.exoplatform.org/id-branching-model

对于git工作流,如[1]所示:

  • feature :所有的特性/新功能/主要的重构都是在feature分支中完成的,这些分支分离出来并合并回develop分支(通常是在一些同行评审之后)。
  • release :当积累了足够的特性或下一个发布时间框架临近时,新的release分支将从develop分支出来。它完全致力于测试/bug修复和任何必要的清理(例如改变一些路径名,不同的仪器默认值等)。
  • master 一旦QA对质量满意,release分支被合并到master(也回到develop)。这就是客户发货/使用的内容。
  • hotfix 如果在发布后发现一个主要问题,则在hotfix分支中开发修复,该分支从主分支中分离出来。这些分支是唯一会从master分支出来的分支
  • 注意:master中的任何提交都是合并提交(来自releasehotfix分支),代表发送给客户的新版本。

请注意,此模型主要适用于a)遵循b)经典发布版本控制和c)拥有独立QA团队的大型软件项目。GitHub上许多流行的存储库遵循一个更简单的模型。

masterrelease之间的区别在于master分支是您的客户/用户正在使用的。它是实际安装或销售的分支。

在许多团队中,master分支(通常也称为master)也是release分支。但情况并非总是如此。在大型公司或拥有独立测试或QA部门/团队的公司中,主分支是出售给客户的分支,而发布分支是被测试的分支。请注意,对于一些项目来说,运行一个完整的测试可能需要一周或更长时间,所以有一个分支是有意义的,测试人员可以测试,但是稳定的(开发人员不经常推送更新)。

featuredevelop之间的差异来自相同的推理。develop分支(通常称为developdev)是稳定开发人员的分支。在传统的源代码控制软件中,开发分支是您的repo服务器。它是所有开发人员共有的分支。这是您开始开发的分支。

另一方面,特性分支是你自己的个人分支。在功能/故事/模块的开发过程中,你当然会对代码进行大量修改。为了利用git,你应该尽早并经常提交。但是,您正在编写的代码从定义上讲是不稳定的(未最终确定),并且可能会对其他开发人员造成破坏性更改。因此,您可以在自己的分支上进行开发(从开发分支中分离出来),直到您的代码准备好合并回开发。

只是因为还没有人在一个明确的声明中说过,这将回答我的问题…

类型MasterRelease?的区别是什么

类型FeatureDevelop的区别是什么?

无差异

分支名称是由团队建立的约定,而不是由git强制执行的规则。

Git并不关心你如何称呼你的分支,你创建了多少个子分支,何时合并它们,等等。Git……分支就是分支。

在许多团队中,分支的名称遵循一个定义的约定,只是为了便于共享理解…但正如我们经常看到的那样,你的惯例对技术并不重要。要赋予一个概念意义,需要一个人,所以请随意以任何你认为有意义的方式命名你的分支。

相关内容

最新更新