GitFlow讲解

2019-10-09  本文已影响0人  农夫_三拳

Git Flow 工作流程

1.Git Flow是什么它解决了哪些问题:

(1):Gitflow Workflow是一种Git工作流程设计,Gitflow工作流定义了围绕项目发行版设计的严格分支模型。这为管理大型项目提供了一个强大的框架。  

(2):Gitflow非常适合具有计划发布周期的项目。除了Feature Branch Workflow所需的功能外,此工作流程不会添加任何新概念或命令。
它可以将非常具体的角色分配给不同的分支,并定义它们应如何以及何时进行交互


2.Git Flow安装:

git-flow工具集是具有安装过程的实际命令行工具。git-flow的安装过程很简单。git-flow的软件包可在多个操作系统上使用。
在OSX系统上,您可以执行brew install git-flow。在Windows上,您需要下载并安装git-flow。安装git-flow后,
您可以通过执行在项目中使用它git flow init。Git-flow是围绕Git的包装。该git flow init命令是默认git init 命令的扩展,除了为您创建分支外,
不会更改存储库中的任何内容。

3.Git Flow工作流:

WX20191009-194655@2x.png
master该工作流使用两个分支而不是单个分支来记录项目的历史记录,
第一步是master用develop分支来补充默认值。一种简单的方法是让一个开发人员在develop本地创建一个空分支并将其推送到服务器:
git branch develop
git push -u origin develop


使用git-flow扩展库时,git flow init在现有存储库上执行将创建develop分支:
$ git flow init
Initialized empty Git repository in ~/project/.git/
No branches exist yet. Base branches must be created now.
Branch name for production releases: [master]
Branch name for "next release" development: [develop]

How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []

$ git branch
* develop
 master

4.功能分支:

gitflow_2.png

feature与分支结合的develop分支都是Feature Branch Workflow。但是,Gitflow工作流并不止于此。
Feature通常创建develop分支到最新分支。

创建功能分支
没有git-flow扩展名:
git checkout develop
git checkout -b feature_branch

使用git-flow扩展名时:
git flow feature start feature_branch

像平常一样继续工作并使用Gi​​t。

完成功能分支
完成该功能的开发工作后,下一步就是将合并feature_branch到中develop。

没有git-flow扩展名:
git checkout develop
git merge feature_branch

使用git-flow扩展:
git flow feature finish feature_branch

5.发布分支:

gitFlow_Release.png

一旦develop获得了足够的功能以进行发布(或临近预定的发布日期),就可以从分支一个release分支develop。创建此分支将开始下一个发行周期,因此此刻之后不能添加任何新功能-该分支中应仅包含错误修复,文档生成以及其他面向发行版的任务。一旦准备好发布,release分支将合并到master版本号中并用版本号标记。此外,应将其合并回develop,自启动发行以来可能已经进行了改进。
使用专门的分支来准备发布,使一个团队可以完善​​当前版本,而另一个团队可以继续开发下一个版本的功能。

没有git-flow扩展名:
git checkout develop
git checkout -b release/0.1.0

使用git-flow扩展名时:
$ git flow release start 0.1.0
Switched to a new branch 'release/0.1.0'

6.修补程序分支:

gitflow_fixBranch.png

维护或“hotfix”分支用于快速修补生产版本。Hotfix分支与release分支和feature分支很像,只是它们基于master而不是develop。这是唯一应直接从分支的分支master。

没有git-flow扩展名:
git checkout master
git checkout -b hotfix_branch
使用git-flow扩展名时: 
$ git flow hotfix start hotfix_branch

例如完成一个release分支,一个hotfix分支被合并到两个master及develop.

git checkout master
git merge hotfix_branch
git checkout develop
git merge hotfix_branch
git branch -D hotfix_branch

$ git flow hotfix finish hotfix_branch

摘要:
Gitflow的总体流程为:

develop从master创建一个分支
release从develop创建一个分支
Feature 从develop创建分支
当feature完成后,会被合并到develop 分支
当release分支完成它合并到develop和master
如果master检测到问题,hotfix则从以下位置创建分支master
一旦hotfix完成后,会被合并到两个develop及master

git场景:

  1. 产品迭代1有多个功能多人同时开发时如何开分支
1.有多少个功能开多少个分支。
2.公共类文件中需要函数,A和B 同时都需要使用,这时可以单独开一个分支,添加该方法,提交合并到develop分支。A和B同时去develop 合并最新的代码,合并到自己所在的feature分支。
  1. 什么时候合并feature到develop,测试通过还是开发完成?
开发完成功能后,自测后没问题才可合并到develop分支

3.什么时候将developr分支代码合并到release分支,提测还是测试完成?


功能模块开发完成后才可以合并到release分支
现阶段版本发布比较频繁所以,发布的测试包可以直接在develop分支发包。
后期预正式上线的时候 需要添加release分支,发布测试包必须在release分支发布。发布版本后bug修改也需要在release分支开分支分支命名
例如:release_iOS_V1.0.1
分支名:release_iOS_V1.0.1/模块+fixBUG

team leader 在成员完成BUG修复后,需及时将release分支代码合并到develop分支,已保持最新
上一篇下一篇

猜你喜欢

热点阅读