Git 开发分支类型与功能分支类型之间的区别是什么?

Git 开发分支类型与功能分支类型之间的区别是什么?,git,git-flow,Git,Git Flow,我读了几篇关于Git流最佳实践的文章。git分支有多种类型(例如:[1]、[2]): 类型Master与Release之间有什么区别 类型功能与开发之间有什么区别 [1] [2] 主版本与发布版本之间的区别在于,主版本分支是您的客户/用户正在使用的分支。它是实际安装或销售的分支 在许多团队中,master分支(通常也称为master)也是release分支。但情况并非总是如此。在较大的公司或具有单独测试或QA部门/团队的公司中,主分支是销售给客户的分支,但发布分支是被测试的分支。请注意,对于一些

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

类型
Master
Release
之间有什么区别

类型
功能
开发
之间有什么区别

[1]


[2] 主版本与发布版本之间的区别在于,主版本分支是您的客户/用户正在使用的分支。它是实际安装或销售的分支

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


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


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

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

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

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

只是因为还没有人清楚地说明这一点,而这本可以回答我的问题

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

类型
功能
开发
之间有什么区别

没有区别。

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

Git不在乎你把你的分支叫做什么,你创建了多少分支,你什么时候把它们合并到Git等等。。。一根树枝就是一根树枝就是一根树枝


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

这些名称似乎只是随意的,尽管是常见的,给Git分支命名。通常,
master
是所有其他分支最终合并到的主分支(“SVN中的主干”)。至于其他名字,它们的用途似乎不言自明。@MikeMB:啊,是的。为什么没有命名为
devel
而不是
develop
,因为它是一个非常常用的缩写?@nowox:develop分支有几个常见的名称:
dev
develop
main
等等。它们都是develop分支。这是一个概念。开发分支的名称取决于您是否所有这些约定(与Git本身无关)?可能明确提到了GitFlow(由于拼写问题,问题中不清楚)。@PeterMortensen:问题有一个
git flow
标记,这是一个工作流(约定),通常被认为是大多数git项目的“标准”工作流。是的,它与git无关,但它与git流有关。请阅读以下原始提案:
+ Master
+ Develop
+ Feature
+ Bug
+ Proof of concept
+ Release
+ Hotfix