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

问题描述 投票:0回答:3

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

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

类型

Master
Release
有什么区别?

类型

Feature
Develop
有什么区别?

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

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

git git-flow
3个回答
50
投票

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

  • feature
    :所有特性/新功能/主要重构都在
    feature
    分支中完成,这些分支分支并合并回
    develop
    分支(通常在某种同行评审之后)。
  • release
    :当积累了足够的功能或接近下一个发布时间框架时,会分支出一个新的
    release
    分支
    develop
    。它专门用于测试/错误修复和任何必要的清理(例如更改一些路径名称、不同的检测默认值等)。
  • master
    一旦 QA 对质量感到满意,
    release
    分支就会合并到
    master
    (也返回到
    develop
    )。这就是客户运送/使用的东西。
  • hotfix
    如果在发布后发现重大问题,修复程序会在从 master 分支出来的
    hotfix
    分支中开发。这些是从 master 分支出来的唯一的分支
  • 注意:
    master
    中的任何提交都是合并提交(来自
    release
    hotfix
    分支),代表交付给客户的新版本。

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


15
投票

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

在很多团队中,

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

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

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


7
投票

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

类型

Master
Release?

有什么区别

类型

Feature
Develop
有什么区别?

没有区别。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.