Git Flow流程

2016-12-13  本文已影响644人  怒煮西兰花

Git的优势:

1.Git是一个分布式的版本控制系统,这一点可以对比svn分支管理系

svn多个开发人员共用操作同一个文件, 分支的操作都是影响“全世界”,但G更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。我们可以在自己的代码库上进行提交,修改,分支,合并等各种操作。同时git开发人员理论上可以再自己的代码库上无限分支的开发。

2.Git把内容按元数据方式存储,而SVN是按文件

有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。

3.分支切换方便,优秀的分支模型 可以支持我们进行项目的快速开发

在git分支模型中,我们很容易实现多个开发线并行实现快速开发。

Git的分支种类:

master:主分支

这个分支是我们的Production分支,是我们最新发布到生产环境的代码所在的分支。 这个分支只能从其他分支合并,不能在这个分支直接修改。

develop:开发分支

这个分支是我们是我们的主开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支。

feature:功能分支

这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支进入下一个Release。

release:发布分支(测试分支)

这个分支是我们在develop开发完成,将要进行发布时从develop拉取的分支,release分支完成后我们需要将release分支分别合并到master 和 develop中。

bugFix:bug修复分支

这个分支是我们线上代码有bug时,从master拉取的分支,当bug修复时合并到develop分支上 以及master上

Git的分支命名规范:

master: master-系统名-项目版本 例如:master-iOS-xxxApp1.0develop:develop_创建时间 例如 develop_20160101* feature: feature_版本_时间 例如 feature_1.0_20160101 *

release发布分支:release_版本*时间 例如 release1.0_20160101 *

release测试分支:release_feature_时间 例如 release_feature_20160101* *

Git的工作流程:

1.初始的项目创建为master

2.在一个开发线对应一个develop分支

3.进行功能开发时,拉取不同的feature分支 进行开发,当开发完成时 将feature分支合并到develop分支

4.所有的feature分支开发完成都合并到develop分支之后 确认开发完成 进入发布期

5.发布期从当前develop节点拉取release发布分支 进行发布测试

6.当测试完成之后 将release分支分别合并到develop分支和master分支 保持master和develop最新

Git使用注意事项:

1.master分支是server 仓库上不可以更改只能由其他分支合并 (恒存在)

2.develop分支是local 仓库上不可以更改只能由其他分支合并 (恒存在)

3.feature分支对应单个功能(单独开发人员) 开发人员不允许使用其他人的feature 如果遇到有依赖关系的 需要通过develop分支进行通讯

4.当功能开发完成之后将feature合并到 develop中,feature生命周期结束

5.当要单独测试某一个功能,那么将feature分支合并到develop中,由测试拉取release测试分支

6.当线上出现bug时,从master拉取bugfix分支修复bug,修复完成 将bugfix合并到下一个开发周期的develop分支中以及合并到master上 bugfix声明周期结束

Git使用Ps:

当然,这是Git Flow标准流程,我们也可以根据项目团队进行适当的修改,比如我们可以去掉release测试分支,直接在feature进行单个功能测试,也可以直接在develop上进行功能的集成测试。测试完成之后直接将develop合并到master分支上。

上一篇下一篇

猜你喜欢

热点阅读