开发与功能分支类型有什么区别?

nhu*_*uvy 21 git git-flow

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

+ Master
+ Develop
+ Feature
+ Bug
+ Proof of concept
+ Release
+ Hotfix
Run Code Online (Sandbox Code Playgroud)

类型MasterRelease?之间有什么区别?

类型FeatureDevelop?之间有什么区别?

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

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

Mik*_*eMB 27

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

  • feature:所有功能/新功能/主要重构都在feature分支中完成,分支分支并合并回develop分支(通常在某种同行评审之后).
  • release:当累积了足够的功能或接下来的下一个发布时间框架时,新release分支就会分支出来develop,专门用于测试/错误修复和任何必要的清理(例如更改一些路径名,不同的仪器默认值等). ).
  • master一旦质量保证对质量感到满意,release分支就会合并到master(并且也会回到develop).这就是客户发货/使用的内容.
  • hotfix如果在发布后发现主要问题,则修复程序在hotfix分支中开发,该分支从主服务器分支出来.这些是唯一将从主人那里分支出来的分支.
  • 注意:任何提交master都是合并提交(来自a releasehotfix分支),并表示发送给客户的新版本.

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


sle*_*man 7

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

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

feature和之间的区别develop来自同样的推理.该develop分支(通常名为developdev)是稳定开发的分支.在传统的源代码控制软件中,开发分支是您的repo服务器.它是所有开发人员共同的分支.它是你开始开发的分支.

另一方面,功能分支是您自己的个人分支.在开发功能/故事/模块期间,您当然会修改代码.为了利用git,你应该尽早提交并经常提交.但是您正在处理的代码是定义不稳定(未最终确定),并且可能会导致其他开发人员的重大更改.所以你在你自己的分支上开发(从开发分支),直到你的代码准备合并回开发.


jet*_*ter 7

只是因为还没有人以明确的声明说出这一点,而这本来可以回答我的问题......

Master类型与类型之间有什么区别?Release?

Featuretype和type 之间有什么区别Develop

没有区别。

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

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

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