git flow分支管理总结

什么是git flow?

Git Flow是构建在Git之上的一个组织软件开发活动的模型,是在Git之上构建的一项软件开发最佳实践。

git flow分支模型

在这里插入图片描述

git flow 分支功能介绍

在这里插入图片描述

1. 核心分支(两种)

核心分支是指 masterdev分支:

在这里插入图片描述
主分支(Master):

  • 代码库应该有一个、且仅有一个主分支。
  • 所有提供给用户使用的正式版本,都在这个主分支上发布。
  • 这个分支只能从其它分支合并,不能在这个分支上直接修改。
  • 需要注意的是,所有在master上的提交应该标记tag。

开发主分支(Develop):

  • dev分支是我们的主开发分支。
  • 包含所有要发布到下一个Release的代码。
  • dev 分支主要合并于其他分支,比如Feature分支。
  • dev分支一般只是进行一些优化和升级,若有新的需求应该拉出一个新的feature分支。

2. 临时分支(三种)

临时分支是指 feature、release、hotfix分支,这三种分支都属于临时性需要,使用完以后,应该删除,使得代码库的常设分支始终只有master和develop。

功能(feature)分支:

这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支进入下一个Release。
在这里插入图片描述
预发布(release)分支:

当你需要一个发布一个新Release的时候,我们基于Develop分支创建一个Release分支,完成Release后,我们合并到Master和Develop分支。
在这里插入图片描述
修补bug(hotfix)分支:
当我们在Production发现新的Bug时候,我们需要创建一个Hotfix, 完成Hotfix后,我们合并回Master和Develop分支,所以Hotfix的改动会进入下一个Release。

在这里插入图片描述
这三种分支都属于临时性需要,使用完以后,应该删除,使得代码库的常设分支始终只有master和develop。

git flow 流程实例代码

1. 创建develop分支

// 从master拉出develop分支
git pull origin master   //可选,获取最新版本
git checkout -b develop master
 
// 发布develop分支
git push -u origin develop

2. 创建feature分支

// 从develop拉出feature_v2.0功能分支
git pull origin develop   //可选,获取最新版本
git checkout -b feature_v2.0 develop
 
// 发布feature_v1.1分支
git push -u origin feature_v2.0

3. 完成feature,合并到develop分支

// develop分支获取最新
git pull origin develop  
 
// 切换到develop分支
git checkout develop 
 
// 从feature分支合并到develop分支
git merge --no-ff feature_v2.0 
 
 
// 删除feature分支,也可以不删除
git branch -d feature_v2.0

4. 开始release

从develop拉出一个release分支
git pull origin develop   //可选,获取最新版本
git checkout -b release_v2.0 develop

5. 完成release,合并到master分支和develop分支,在master打上tag标记

// 合并到master
git checkout master
git merge --no-ff release_v2.0
 
// 在master打tag标记
git tag release2.0 master
git push --tags
 
// 合并到develop
git checkout develop
git merge --no-ff release_v2.0

6. 开始hotfix

从主线master拉出一个hotfix分支
git pull origin master   //可选,获取最新版本
git checkout -b hotfix_v2.0.1 master

7. 完成hotfix,合并到master和develop,并在master上打tag。

// 合并hotfix_v2.0.1到master
git checkout master
git merge --no-ff hotfix_v2.0.1
 
// 在master打上tag
git tag hotfix2.0.1 master
git push --tags
 
// 合并hotfix_v2.0.1到develop
git checkout develop
git merge --no-ff hotfix_v2.0.1

分支命名规范

  • 命名都统一采用小写
  • feature分支:以"feature_"开头,如feature_v1.1
  • release分支:以"release_"开头,如release_v1.1
  • hotfix分支:以"hotfix_"开头,如hotfix_20160112
  • tag标记:如果是release分支合并,则以"release_"开头。如果是hotfix分支合并,则以"hotfix_"开头。
  • master分支每次提交都要打tag,release tag:如release_v1.1,hotfix tag:如hotfix_20160112
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值