git flow的使用

git flow的诞生背景:

一般来说,如果你是一个人开发,可能只需要 master、develop 两个分支就 ok 了,平时开发在 develop 分支进行,

开发完成之后,发布之前合并到 master 分支,这个流程没啥大问题。
如果你是 3、5 个人,那就不一样了,有人说也没多大问题啊,直接可以新建 A、B、C 三个人的分支啊,

每人各自开发各自的分支,然后开发完成之后再逐步合并到 master 分支。然而
现实却是,你正在某个分支开发某个功能呢,这时候突然发现线上有一个很严重的 bug ,不得不停下手头的工作优先处理 bug ,

而且很多时候多人协作下如果没有一个规范,很容易产
生问题,所以多人协作下的分支管理规范很重要,就跟代码规范一样重要,以下就跟大家推荐一种我们内部在使用的一种分支管理流程 Git Flow。


git flow的工作流程:


一般开发来说,大部分情况下都会拥有两个分支 master 和 develop,他们的职责分别是:


master:永远处在即将发布(production-ready)状态
develop:最新的开发状态


确切的说 master、develop 分支大部分情况下都会保持一致,只有在上线前的测试阶段develop 比 master 的代码要多,一旦测试没问题,准备发布了,这时候会将 develop 合并到master 上。


但是我们发布之后又会进行下一版本的功能开发,开发中间可能又会遇到需要紧急修复 bug,一个功能开发完成之后突然需求变动了等情况,所以 Git Flow 除了以上 master 和 develop两个主要分支以外,还提出了以下三个辅助分支:


feature: 开发新功能的分支, 基于 develop, 完成后 merge 回 develop
release: 准备要发布版本的分支, 用来修复 bug,基于 develop,完成后 merge 回develop 和 master
hotfix: 修复 master 上的问题, 等不及 release 版本就必须马上上线. 基于 master, 完成后merge 回 master 和 develop


什么意思呢?
举个例子,假设我们已经有 master 和 develop 两个分支了,这个时候我们准备做一个功能A,第一步我们要做的,就是基于 develop 分支新建个分支:
git branch feature/A
看到了吧,其实就是一个规范,规定了所有开发的功能分支都以 feature 为前缀。


但是这个时候做着做着发现线上有一个紧急的 bug 需要修复,那赶紧停下手头的工作,立刻切换到 master 分支,然后再此基础上新建一个分支:
git branch hotfix/B
代表新建了一个紧急修复分支,修复完成之后直接合并到 develop 和 master ,然后发布。


然后再切回我们的 feature/A 分支继续着我们的开发,如果开发完了,那么合并回 develop 分支,

然后在 develop 分支属于测试环境,跟后端对接并且测试的差不多了,感觉可以发布到正式环境了,这个时候再新建一个 release 分支:
git branch release/1.0
这个时候所有的 api、数据等都是正式环境,然后在这个分支上进行最后的测试,发现 bug 直接进行修改,直到测试 ok 达到了发布的标准,

最后把该分支合并到 develop 和 master 然后进行发布。


以上就是 Git Flow 的概念与大概流程,看起来很复杂,但是对于人数比较多的团队协作现实开发中确实会遇到这么复杂的情况,是目前很流行的一套分支管理流程,

但是有人会问每次都要各种操作,合并来合并去,有点麻烦,哈哈,这点 Git Flow 早就想到了,为此还专门推出了一个 Git Flow 的工具,并且是开源的:
GitHub 开源地址:https://github.com/nvie/gitflow


简单点来说,就是这个工具帮我们省下了很多步骤,比如我们当前处于 master 分支,如果想要开发一个新的功能,第一步切换到 develop 分支,

第二步新建一个以 feature 开头的分支名,有了 Git Flow 直接如下操作完成了:
git flow feature start A
这个分支完成之后,需要合并到 develop 分支,然而直接进行如下操作就行:
git flow feature finish A


如果是 hotfix 或者 release 分支甚至会自动帮你合并到 develop、master 两个分支。

详细内容参考:http://stormzhang.com/git/2014/01/29/git-flow/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值