其他分享
首页 > 其他分享> > Gitflow工作流程

Gitflow工作流程

作者:互联网

 安装

1、前面说了git,现在学习一下git的开发模型git flow。

      Git flow利用Git创建和管理分支的能力,位每个分支设定具有特定含义的名称,并将软件生命周期中的各类活动归并到不同的分支上。从而实现了软件开发过程中不同操作的相互隔离。这种软件开发模型就是“Git Flow”。

2、Git Flow的下载安装。

一.首先要先安装Git。Git的安装前面已经有过介绍,这里就再多说了。

二.https://github.com/nvie/gitflow/wiki/Windows

 

 

     点击上图中的超链接,下载安装Git Flow需要三个文件(getopt.ext , libintl3.dll , libiconv2.dll)。下载完成之后将

      这三个文件拷贝到git安装目录的bin文件夹下。

这里我为了方便大家我弄了一个传送门

————————————————————————————————

链接:https://pan.baidu.com/s/16rchm793gXryIiP3GUGWAw 
提取码:jg2l 

————————————————————————————————

三、打开Git Bash。然后在命令窗口输入:

git clone --recursive git://github.com/nvie/gitflow.git

此时在当前路径下就会生成一个gitflow文件夹。如果想执行安装路径,可以如下:

git clone --recursive git://github.com/nvie/gitflow.git d:\gitflow

四、文件复制完成之后,打开dos命令窗口,进入gitflow\contrib路径下,

      执行:msysgit-install.cmd,如果git不是安装

      在当前目录下,在安装gitflow的时候,后面需要加上git的安装路径。

contrib\msysgit-install.cmd "D:\Program Files\Git\bin"

 

五、返回Git Bash命令窗口,执行git flow,输出如下:      

                

          说明Git Flow已经安装成功。前面生成的gitflow文件已经完成了它的使命,可以删除了。

⑥执行git flow初始化,执行git flow int

1. 工作流程

项目开始(master、develop)
  1. 开发组长,基于master主干创建develop分支。master和develop就作为仓库的两个主干,并且将它们的加权限限制,只有管理员可修改。
开发阶段(master、develop、feature)
  1. 基于develop创建多个feature分支(如:feature/login),对应功能模块的开发人员,基于该分支开发新功能。
  2. 开发人员,测试新功能完成以后,在git上发起pull request把代码合并到到develop分支上。
  3. 开发组长,在确认代码没有问题后,通过该pull request 的合并请求。当所有的功能都开发完了,所有的feature分支都合并到develop上。
测试阶段-开始测试(master、develop、release)
  1. 开发组长,基于develop分支创建一个release预发布分支(如:release/1.0.0),并设置release分支只有管理员有权限修改。
  2. 基于release/1.0.0分支的代码进行测试。
测试阶段-测试中(master、develop、release、bugfix)
  1. 当测试发现bug时,基于当前release/1.0.0分支创建bugfix分支(如:bugfix/问题编号),开发人员基于该bugfix分支进行bug修复。
  2. 开发人员在bug修复后,向release/1.0.0分支提交 pull request 申请。
  3. 开发组长在确认bug修复完成后,通过该pull request 的合并请求。所有bug修复完成后,当前release版本下,所有bugfix分支都合并到release/1.0.0上。
测试阶段-测试完毕(master、develop、tag
  1. 开发组长发起pull request,把release/1.0.0代码合并到到master分支上。
  2. 基于master分支创建一个里程碑版本(tag)名为1.0.0-Release,并且在github上发布一个Release,可以将当前master代码以及相关包存档。
  3. 原则上只需保留master、develop两个分支,和1.0.0-Release里程碑版本(tag)。删除完成使命的其他分支:多个feature分支、多个bugfix分支和release/1.0.0。
线上bug-master(master、develop、hotfix)
  1. 线上版本出现bug,可以基于最新版本(master)进行修复,可以基于master创建hotfix分支(如:hotfix/问题编号),开发人员基于该hotfix分支进行bug修复。
  2. 开发人员在bug修复后,向master分支提交 pull request 申请。
  3. 开发组长在确认bug修复完成后,通过该pull request 的合并请求。基于master分支创建一个里程碑修复版本(tag),假如当前版本为1.2.0-Release,则修复版本为1.2.1-Release。
线上bug-历史版本(master、develop、tag、hotfix)
  1. 用户基于某个里程碑版本tag(如:1.0.0-Release)提出bug,创建一个issue。如果master版本已经发布到1.0.0以后了(如:1.2.0-Release),但是该bug修复只能基于历史的1.0.0修复,就需要基于该里程碑版本(tag)1.0.0-Release,创建一个release/1.0.1分支,和hotfix分支(如:hotfix/问题编号),开发人员基于该分支修复bug。
  2. 开发人员在bug修复后,向release/1.0.1分支提交 pull request 申请。
  3. 开发组长在确认bug修复完成后,通过该pull request 的合并请求。基于release/1.0.1分支创建一个里程碑修复版本(tag),名为1.0.1-Release。

     

     

示例代码(release/*)
# 开始 release

git checkout -b release/0.0.1 develop

# 完成 release

git checkout master

git merge --no-ff release/0.0.1

git push

git checkout develop

git merge --no-ff release/0.0.1

git push

git branch -d release/0.0.1

git push origin --delete release/0.0.1 

# 合并master/devlop分支之后,打上tag 

git tag -a v0.1.0 master

git push --tags

 

2. 分支说明

master
develop
release/*
feature/*
bugfix/*
hotfix/*
总结

3. 版本号

在前文很多地方都涉及到版本号,例如:release/* 分支、提交tags和发布Release版本等,版本号的命名也需要有一定的规范。

版本号(公开)

对外正式发布的版本号,一般只需要通过三位数字的版本号:主版本号.次版本号.修订号:

版本号(测试)

假如我们想要发布 1.0.1 版本,在开发团队内部,可能会提交多次的测试版本,交付给测试人员测试。这时候需要基于 1.0.1 版本号后面,加上一些其他的版本号。

可能基于这些版本号还有更细致的划分,这个可以根据实际项目情况调整。例如:v1.0.0-beta.1、v1.0.0-beta.2,或v1.0.0-200910-beta等。

标签:git,develop,流程,Gitflow,工作,master,release,bug,分支
来源: https://www.cnblogs.com/GreenForestQuan/p/14714257.html