我读了几篇关于Git流程最佳实践的文章。有很多类型的git分支(例如:[1],[2]):
+ Master
+ Develop
+ Feature
+ Bug
+ Proof of concept
+ Release
+ Hotfix
类型Master
与Release
之间有什么区别?
类型Feature
与Develop
之间有什么区别?
答案 0 :(得分:24)
对于git工作流程,如[1]中所示:
feature
:所有功能/新功能/主要重构都在feature
分支中完成,分支分支并合并回develop
分支(通常经过某种同行评审)。 release
:当累积了足够的功能或接下来的下一个发布时间框架时,新的release
分支将从develop
分支出来,这是专门用于测试/错误修复和任何必要的清理(例如更改一些路径名,不同的仪器默认值等)。master
质量保证对质量感到满意后,release
分支合并为master
(并返回develop
) 。这就是客户发货/使用的内容。hotfix
如果在发布后发现主要问题,则修复程序是在hotfix
分支中开发的,该分支是从主分支分支出来的。这些是唯一将从主分支出来的分支。master
中的任何提交都是合并提交(来自release
或hotfix
分支),并代表发送给客户的新版本。请注意,此模型主要用于a)遵循b)经典发布版本的大型软件项目,以及c)拥有单独的QA团队。 GitHub上的许多流行的存储库都遵循一个更简单的模型。
答案 1 :(得分:7)
master
和release
之间的区别在于master
分支是您的客户/用户正在使用的分支。它是实际安装或销售的分支。
在很多团队中,master
分支(通常也称为master
)也是release
分支。但情况并非总是如此。在拥有单独测试或QA部门/团队的大型公司或公司中,主分支机构是销售给客户的分支机构,但发布分支机构是正在测试的分支机构。请注意,对于某些运行完整测试的项目可能需要一周或更长时间,因此有一个测试人员可以测试但稳定的分支是有意义的(开发人员不会不断推送更新)。
feature
和develop
之间的区别来自同一推理。 develop
分支(通常名为develop
或dev
)是稳定开发人员的分支。在传统的源代码控制软件中,开发分支是您的repo服务器。它是所有开发人员共同的分支。它是你开始开发的分支。
另一方面,功能分支是您自己的个人分支。在开发功能/故事/模块期间,您当然会修改代码。为了利用git,你应该尽早提交并经常提交。但是您正在处理的代码是定义不稳定(未最终确定)并且可能导致其他开发人员的重大更改。所以你在你自己的分支上开发(从开发分支出来),直到你的代码准备好合并回来开发。
答案 2 :(得分:3)
只是因为还没有人在明确的声明中说过,这将为我回答这个问题...
Master
与Release?
类型之间有什么区别
Feature
与Develop
类型之间有什么区别?
没有区别。
分支名称是团队建立的惯例,而不是git 实施的规则。
Git不在乎您叫什么分支,创建多少子分支,何时合并它们等等等。对于Git ...,分支就是分支就是分支。
在许多团队中,分支的名称遵循已定义的约定只是为了便于达成共识……但是,正如我们经常看到的那样,您的约定对技术并不重要。一个人要赋予一个概念含义,所以可以随时以有意义的方式命名分支。