我阅读了一些关于Git工作流最佳实践的文章。有许多类型的git分支(例如:[1],[2]):
+ Master
+ Develop
+ Feature
+ Bug
+ Proof of concept
+ Release
+ Hotfix
Master
和Release
之间有什么区别?
Feature
和Develop
之间有什么区别?
我阅读了一些关于Git工作流最佳实践的文章。有许多类型的git分支(例如:[1],[2]):
+ Master
+ Develop
+ Feature
+ Bug
+ Proof of concept
+ Release
+ Hotfix
Master
和Release
之间有什么区别?
Feature
和Develop
之间有什么区别?
针对Git工作流程,如[1]所示:
feature
:所有的功能/新功能/重构都在feature
分支上完成,它们从develop
分支分支出来,并在某种同行评审后合并回develop
分支。release
:当积累了足够多的功能或临近下一个发布时间时,会从develop
分支创建一个新的release
分支。该分支专门用于测试/修复bug和进行必要的清理(例如更改一些路径名、不同的默认值进行仪表化等)。master
:一旦QA确认质量满意,将release
分支合并到master
分支中(同时合并回develop
分支)。这就是向客户发货/使用的版本。hotfix
:如果发布后发现了一个严重问题,则在master
分支上开发修复程序的hotfix
分支。这些是唯一从主分支分支出来的分支。master
分支上的提交都是合并提交(来自release
或hotfix
分支),代表向客户发布的新版本。请注意,这个模型主要适用于a)遵循传统发布版本控制的b)大型软件项目和c)有单独的QA团队。许多受欢迎的GitHub存储库遵循更简单的模型。
master
和release
之间的区别在于master
分支是您的客户/用户正在使用的分支。它是实际安装或销售的分支。master
分支(通常也称为main
)也是release
分支。但这并不总是如此。在大型公司或拥有独立测试或QA部门/团队的公司中,主分支是销售给客户的分支,而发布分支是正在进行测试的分支。请注意,对于某些项目来说,进行完整测试可能需要一周或更长时间,因此有一个测试人员可以测试但稳定的分支是有意义的(开发人员不会不断推送更新)。
feature
和develop
之间的区别也源于同样的原因。 develop
分支(通常命名为develop
或dev
)是稳定的开发者分支。在传统的源代码控制软件中,develop分支是您的仓库服务器。它是所有开发人员共有的分支。它是您开始开发的分支。dev
、develop
、main
等。它们都是开发分支。这是一个概念。你给开发分支起什么名字取决于你。 - slebetmangit-flow
标签,这是一种工作流程(约定),通常被认为是大多数git项目的“标准”工作流程。是的,它与git无关,但它与git-flow有关。阅读此内容以获取原始提案:https://nvie.com/posts/a-successful-git-branching-model/ - slebetman只是因为还没有人清楚地表述,这会回答我的问题...
Master
与Release
类型有什么区别?
Feature
与Develop
类型有什么区别?
实际上并没有区别。
分支名称是由团队制定的约定,而不是Git强制执行的规则。
Git不在乎你如何命名你的分支、创建多少子分支、何时合并它们等。对于Git来说...
一条分支就是一条分支,没有任何区别。
许多团队的分支名称遵循明确定义的约定,只是为了方便共享理解...但正如我们经常看到的那样,你的约定对于技术并不重要。将一个概念赋予意义需要人类,所以请根据你的理解自由地命名分支。