Git flow概念

git flow概念

  • git 作为一个代码管理系统,不可避免的会涉及到多人合作。
  • Git flow是基于git之上的一种软件开发迭代模型。Git flow是使用git进行源代码管理的一套行为规范。简单来说就是通过规范化的流程,使得产品、开发与测试等各个部门更高效的协同工作。
  • Git Flow重点解决的是由于源代码在开发过程中的各种冲突导致开发活动混乱的问题,提高开发效率。
    在这里插入图片描述

git flow中的分支

Git Flow模型中定义了主分支和辅助分支两类分支。其中主分支用于组织与软件开发、部署相关的活动;辅助分支组织为了解决特定的问题而进行的各种开发活动。

主分支

  • master 分支
  • develop 分支

辅助分支

我们的开发模式旁边的主要分支机构掌握和发展,使用各种支持分支机构,以帮助团队成员之间的平行发展,便于跟踪的功能,准备生产版本,并协助快速修复现场生产问题。 与主分支不同,这些分支总是有有限的生命时间,因为它们最终将被移除。

  • feature 分支
  • release 分支
  • hotfix 分支

主要功能

  1. master分支:用于存放对外发布的版本,任何时候在这个分支获取到的都是稳定的已发布的版本。
  2. develop分支:用于日常开发,存放最新的开发版。
  3. feature分支
  • 从develop分支检出
  • 必须合并会develop分支
  • 命名规范:除了master, develop, release-* , or hotfix-*

当开始一个新特征的开发时,从develop检出feature分支。Feature分支的本质是,只要特性处于开发阶段,它就会存在,将来会被合并会develop分支(为了即将发布的版本而明确地添加新特性),或者丢弃掉(如果是令人失望的实验)。

Feature分支只存在于开发者本地,不能被提交到远程库
在这里插入图片描述
4. release分支

  • 从develop分支检出
  • 必须合并回develop分支和master分支
  • 命名规范:release-*

release分支是为发布新的产品版本而设计的。在这个分支上的代码允许做小的缺陷修正、准备发布版本所需的各项说明信息(版本号、编译时间等等)。通过在release分支上进行这些工作可以让develop分支空闲出来以接受新的feature分支上的代码提交,进入新的软件开发迭代周期。

当develop分支上的代码已经包含了所有即将发布的版本中所计划包含的软件功能,并且已通过所有测试时,我们就可以考虑准备创建release分支了。而所有在当前即将发布的版本之外的业务需求一定要确保不能混到release分支之内(避免由此引入一些不可控的系统缺陷)。

  1. hotfix分支
  • 从master检出
  • 合并会develop和master分支
  • 命名规范:hotfix-*
    在这里插入图片描述

hotfix分支非常像release分支,因为它们都意味着即将发布一个新的版本,尽管是未计划的。

当线上出现一个严重的bug,需要立即修复的时候,就需要从master分支上指定的tag版本派生hotfix分支来进行紧急修复工作。

这样做的显而易见的好处是不会打断正在进行的develop分支的开发工作,能够让团队中负责新功能开发的人与负责代码紧急修复的人并行的开展工作。

summary

Git Flow开发模型从源代码管理角度对通常意义上的软件开发活动进行了约束。应该说,为我们的软件开发提供了一个可供参考的管理模型。Git Flow开发模型让nvie的开发代码仓库保持整洁,让小组各个成员之间的开发相互隔离,能够有效避免处于开发状态中的代码相互影响而导致的效率低下和混乱。

所谓模型,在不同的开发团队,不同的文化,不同的项目背景情况下都有可能需要进行适当的裁剪或扩充。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GitFlow是一种使用Git进行版本控制的工作流程,旨在帮助开发团队更好地管理代码的发布和维护过程。它通过定义一组明确的分支和规则来组织代码库中的开发流程。GitFlow的核心概念包括两个主要分支:master和develop,以及用于开发新功能和修复bug的支持分支:feature和hotfix。 GitFlow的作用包括: 1. 自动更新版本:GitFlow可以在开始发布或修补程序时自动更新版本号,方便进行版本管理和追踪。 2. 自动指定标签消息:通过使用GitFlow工具包或其他类似的工具,可以快速创建标准化的Git提交消息格式,并为每个标签指定相应的消息。 3. 初始化git-flow:使用git flow init命令可以初始化GitFlow工作流程,并设置相应的分支和规则。这将为团队提供一个一致的代码管理结构。 除了上述功能外,还有一些与GitFlow相关的工具和扩展,如gitflow-semver-hooks和gitflow增量生成器(GIB)。gitflow-semver-hooks是一个钩子工具,可以在GitFlow操作期间自动更新版本。GIB是一个Maven扩展,用于增量构建多模块项目,可以根据Git中的参考分支(如Origin/develop)来构建或测试仅更改的模块。这些工具可以进一步提高团队的代码管理效率和质量。 综上所述,GitFlow是一种帮助开发团队管理代码版本控制的工作流程,它提供了自动更新版本、自动指定标签消息和初始化GitFlow等功能。此外,还有一些与GitFlow相关的工具和扩展可供选择和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值