天天热资讯![Git]Git Flow 工作原理
2023-03-12 11:58:11 来源:腾讯云

一、 Git Flow 工作模型的原理

无规矩不成方圆,但是规矩太多了,则感觉到束缚。我们一个人工作的时候喜欢无拘无束,想怎么干就怎么干,没有人评判,没有人检验。时间久了就会盲目自大,以为增删改查熟悉业务就能够搞定一些。但是当项目逐渐扩大,原来的灵活逐渐变成了混乱,原来的快速迭代因为过于随意的代码,而开发进度迟迟不前。掌握一种规范,便在处理类似问题的时候有章可循,也能够快速的融入一个团队。另外所谓规范,可以说是比较好的实践,按照规范来,项目也能稳健的发展。


【资料图】

Git Flow 就是如何使用git 分支的一种规范,或者叫做推荐。

根据Git Flow 的推荐,我们要将Git 的分支分为 masterdevelophotfixreleasefeature这五个分支。各种分支分别负责不同的功能,平时开发的时候各司其职,因此会有比较小的冲突率。那么可以用这些减少冲突的时间,少加会班,多有点自己的生活岂不快哉。一图胜千言:

Git flow工作流程

master 分支

master 分支主要方稳定、随时可上线的版本。这个分支只能从别的分支上合并过来,一般来讲,从develop 上合并,或者从bugfix 分支上合并过来。不能直接在master 分支上进行commit文件。因为是稳定的版本,所以每次版本发布都要在这个分支上添加标签(tag)。

develop 分支

develop 分支是所有开发分支的母体,所有的开发分支都要从develop上切出来,开发完成之后最后都要合并到develop上。

hotfix 分支

hotfix 分支用来修复生产中的紧急bug,由于develop分支尚处于开发过程中,代码不稳定,不能直接应用于生产。所以从master分支上切出一个分支,修复完成之后合并到master分支,并且合并到develop上。

release 分支

release 分支可以称之为预发布的版本。当我们认为develop版本的代码已经趋于成熟,我们可以打一个release分支。在release 分支上测试完成之后,要将代码合并到master分支和develop上。master 分支是线上版本,而合并到develop版本是因为,在测试过程中,一些细节的东西可能会修改,因此这些优化的内容也应该合并到最终版本以及开发版本中。

feature 分支

feature 分支是最经常使用的分支了。当我们收到一个新的开发功能时,应该在develop分支上切出一个feature分支。用来完成新功能的开发,开发完成之后,要合并进develop分支上。

二、 Git Flow 工具的使用

基本上各种git的客户端软件都会支持Git Flow 工作模型。sourcetree 上使用git flow 工作模型就很流畅,体验很好。但是为了全平台上通用,以及理解原理,快速上手。我们来学习下Git Flow 的命令行操作。

git flow 是一种git的使用规范,当然也有相应的工具集,命令行命令让我们使用。

1、起步

安装git flow

brew install git-flow-avh

初始化git flow 工具库

git flow init之后都按照默认的去配置,直接按enter键继续。

2、feature 分支操作

增加feature新特性分支

适用场景,需要开发新功能

git flow feature start your roverliang/addlist

示例:

roverliang$ git flow feature start roverliang/addlistSwitched to a new branch "feature/roverliang/addlist"Summary of actions:- A new branch "feature/roverliang/addlist" was created, based on "develop"- You are now on branch "feature/roverliang/addlist"Now, start committing on your feature. When done, use:     git flow feature finish roverliang/addlistroverliang$ git branch  develop* feature/roverliang/addlist  master

完成新特性这个动作执行的是下面的流程:

合并 addlist 分支到 develop删除这个新特性分支切换回 develop 分支
git flow feature finish roverliang/addlist

示例:

roverliang$ git flow feature finish roverliang/addlistSwitched to branch "develop"Your branch is up to date with "origin/develop".Already up to date.Deleted branch feature/roverliang/addlist (was 2e1b475).Summary of actions:- The feature branch "feature/roverliang/addlist" was merged into "develop"- Feature branch "feature/roverliang/addlist" has been locally deleted- You are now on branch "develop"roverliang$ git branch* develop  masterroverliang$

获取一个发布的新特性的分支

git flow feature track origin MYFEATURE

3、release 分支操作

准备release 版本

git flow release start RELEASE [BASE]你可以选择提供一个 [BASE]参数,即提交记录的 sha-1 hash 值,来开启动 release 分支. 这个提交记录的 sha-1 hash 值必须是"develop" 分支下的。

示例:

roverliang$ git branch  develop  feature/test* masterroverliang$ git log --pretty=oneline -32e1b475f9825275aefa0892cfe5259aaac9a3483 (HEAD -> master, origin/test2, origin/master, origin/feature/test, origin/develop, feature/test, develop) delte some content2d22f306d2dca363b8aaa05743be342a505aabb0        renamed:    demo.txt -> test.txtfbf025e210952c3cdb10e219c4ee5f82b9f36327        modified:   demo.txtroverliang$

发布release 版本

git flow release track RELEASE

完成release 版本

相当于执行以下几个动作:

归并 release 分支到 "master" 分支用 release 分支名打 Tag归并 release 分支到 "develop"移除 release 分支
git flow release finish RELEASE

4、bugfix 分支操作

紧急修复的需求:

紧急修复来自这样的需求:生产环境的版本处于一个不预期状态,需要立即修正。有可能是需要修正 master 分支上某个 TAG 标记的生产版本。

开始紧急修复,开启hotfix 分支

git flow hotfix start VERSION [BASENAME]VERSION 参数标记着修正版本。你可以从 [BASENAME]开始,[BASENAME]为finish release时填写的版本号

完成紧急修复

当完成紧急修复分支,代码归并回 develop 和 master 分支。相应地,master 分支打上修正版本的 TAG。

git flow hotfix finish VERSION

天天热资讯![Git]Git Flow 工作原理

2023-03-12

全球简讯:如何添加qq背景音乐_添加音乐的方法

2023-03-12

环球最新:微米DDV-5100HD

2023-03-12

世界动态:软著是什么意思呢(软著是什么意思呀)

2023-03-11

全新马自达CX-50内饰首次曝光!主设计师连线解读共入自然之美

2023-03-11

李咏移民国籍是哪国_李咏是美国国籍吗

2023-03-11

焦点滚动:日记格式怎么写二年级田字格_日记格式怎么写

2023-03-11

 蒋志刚代表:“五水”共治  提升流域治理实效

2023-03-11

龙战长空

2023-03-11

每日看点!文搜丁甲

2023-03-11

销售经理的职责及管理内容_销售经理的工作职责

2023-03-11

阳光诺和: 阳光诺和2022年年度利润分配及资本公积转增股本方案公告 天天百事通

2023-03-10

侠盗列车手自由城故事_侠盗列车4秘籍 全球快讯

2023-03-10

《使命召唤:现代战争Ⅱ/战区2》第二赛季 季中更新前瞻 世界视讯

2023-03-10

天天看热讯:定光航空障碍灯功率_定光欢喜佛

2023-03-10

环球关注:北京:周六下午主干道车多于上午,16至18时出现车流高峰

2023-03-10

今日要闻!贾政抢了贾赦的爵产,当家荣国府背后,是豪门兄弟阋墙的残酷争斗

2023-03-10

03月10日06时河北石家庄疫情数据 阳了以后为什么会腰疼?应该怎么办?

2023-03-10

世界热头条丨愿得一人心白首不分离图片 情侣_愿得一人心白首不分离

2023-03-10

C罗暴怒离场!错失良机后连连摇头,一把摘下袖标,又抱怨队友

2023-03-10

三星A72什么时候发布_今日最新

2023-03-09

世界球精选!貔恘手串怎么佩戴专家怎么说黄金_貔恘

2023-03-09

生物圈的范围是怎样的_生物圈的范围 天天速递

2023-03-09

今日月光宝盒怎么获得(月光宝盒是什么 怎么得来的)

2023-03-09

九芝堂:公司布局干细胞药品及相关产品的生产与研发、创新药物研发

2023-03-09

世界滚动:传奇私服发布网站排名

2023-03-09

快资讯丨组图:杨颖美杜莎造型大片释出着多种风格长裙尽显沉静优雅

2023-03-09

全国人大代表薛济萍建议:加快江苏如东铁路建设_世界即时看

2023-03-09

保持粮食安全战略定力|环球报道

2023-03-09

音乐tkm格式转换mp3_tkm歌曲文件转换器

2023-03-09

矩阵股份:融资净偿还8139元,融资余额2265.23万元(03-08)

2023-03-09

ps魔棒工具怎么抠图换背景_ps魔棒工具怎么抠图 天天快讯

2023-03-09

储能板块3月8日跌0.32%,珈伟新能领跌,主力资金净流出28.26亿元|环球快报

2023-03-09

卧龙·苍天陨落 个人通关简评

2023-03-08

天天即时看!云天化(600096):云天化关于召开2023年第二次临时股东大会,审议14项议案

2023-03-08

冷宫弃妃一世倾城笔趣阁_冷宫弃妃一世倾城

2023-03-08

世界视点!提前备水!明天13点,湖北大冶这些区域将大范围停水,快看有你家吗?

2023-03-08

金花茶

2023-03-08

全国道德模范故事汇基层巡演走进广西专场在钦州举行

2023-03-08

微信网络连接不可用怎么解决-世界今头条

2023-03-08

全球热讯:暴涨近200%!TVB也来带货 老牌艺人现身、直播间送签名照!又一东方甄选

2023-03-08

假期结束了怎么发朋友圈_假期结束收拾好心情上班的句子-当前报道

2023-03-08

环球微动态丨facebook怎么使用

2023-03-08

全球观焦点:筑起“帮扶网” 实现居民“微心愿”

2023-03-08

实质性测试 世界短讯

2023-03-08

天天快资讯:口臭舌苔厚怎么办_舌苔厚怎么办

2023-03-08

【世界独家】加索尔:我被交易至湖人时 科比非常渴望冠军数超鲨鱼平乔丹

2023-03-08

天天最新:姜中华

2023-03-07

环球热点评!如何预防远离宫颈癌?听听医生怎么说

2023-03-07

便宜推|每日快播

2023-03-07

全球看热讯:投资超16亿元!昆明这个棚改项目即将招标

2023-03-07

张国荣怎么死的他为什么要死

2023-03-07

世界快播:爱心义卖温暖童心,青年志愿者团队助力特殊儿童健康成长

2023-03-07

【新华500】新华500指数(989001)7日跌1.48%

2023-03-07

永顺二中

2023-03-07

焦点热议:春日到!共赴荔波月亮湖湿地公园,感受自然诗意!

2023-03-07

豆掰为什么没有建军大业的评论和评分

2023-03-07

世界新消息丨苏家屯区气象局发布大风蓝色预警【Ⅳ级/一般】【2023-03-07】

2023-03-07

天天快报!又有A股知名公司"出事"!副总裁兼财务总监涉嫌职务犯罪,影响多大?

2023-03-07

全球热点!cleveland是哪个城市

2023-03-07

棒约翰比萨 上海张江店 热点评

2023-03-07

全球即时:怎样吃梨子减肥

2023-03-06

每日热讯!营口开发区气象局发布大雾橙色预警【Ⅱ级/严重】【2023-03-06】

2023-03-06

智者千虑必有一失的意思_世界热消息

2023-03-06

走近 AI 和 5G 时代下的电信行业

2023-03-06

当前速读:凤梨吃着酸怎么办 凤梨要挖孔吗

2023-03-06

中国的24个传统节日

2023-03-06

风雪佳人绯颜,诗末晨曦古韵(第四弹)-世界热资讯

2023-03-06

拖了好久的电影《大侦探皮卡丘2》终于有消息!导演终于找到了

2023-03-06

世界热议:朴宰范为什么退出2pm

2023-03-06

7年级语文上册知识点总结_7年级语文上册知识点 当前观察

2023-03-06

天天简讯:胚囊图片_胚囊

2023-03-06

恐怖片走进现实惊动警方,美多城惊现“鬼脸杀手”,真相雷人! 世界百事通

2023-03-06

炫舞情侣印象8个字霸屏

2023-03-06

华鑫证券:给予和达科技买入评级

2023-03-06

还珠:皇帝要处死皇后,容嬷嬷却用一句感动了皇帝,网友:姜还是老的辣

2023-03-06

马思纯个人资料

2023-03-05

qq邮箱给未来的一封信_给未来老师的一封信

2023-03-05

下划线怎么打出来|全球微动态

2023-03-05

女儿青春期脸越长越大,容貌身形大变样!爸爸急了…医生紧急提醒 全球实时

2023-03-05

远视散光怎么治疗效果最好_远视散光

2023-03-05

迈克-布朗:让对手在48分钟以60%命中率得到138分 这很难赢

2023-03-05

最新资讯:泰罗奥特曼小时候的动画片_泰罗奥特曼小时候

2023-03-05

每日快报!懒人福音!穿不脏的卫衣,可乐、奶茶不沾身,一件顶半个衣橱

2023-03-05

“十三五”劳动人事争议仲裁审判白皮书_视焦点讯

2023-03-05

2023年2月份中国大宗商品指数(CBMI)为102.8%|全球动态

2023-03-05

出自桃花源记的成语有哪些和意思_出自桃花源记的成语有哪些

2023-03-04

今日观点!全面注册制新进展:主板234家IPO企业完成平移,首家IPO新申报企业诞生

2023-03-04

苹果手机wifi连接上不能上网怎么办

2023-03-04

Android WIFI使用简述

2023-03-04

房地产市场从2023年开始分为两半

2023-03-04

世界今日讯!舌状绦虫_关于舌状绦虫的介绍

2023-03-04

全球今日报丨河北平乡:“订单式”职业教育促就业

2023-03-02

13步

2023-03-02

全球看点:系的组词多音字_戏的组词

2023-03-02

全球看点:离岸人民币大涨900点或涨1.3%创近三个月最大涨幅

2023-03-02

2017高考备考指南·文科数学系统复习用书

2023-03-02

天天滚动:mysql和workbench在windows的安装和使用

2023-03-02

【当前热闻】福能东方: 福能东方装备科技股份有限公司第五届董事会第三十三次会议决议公告

2023-03-01

实时:雨衣如何折叠收纳?小学生劳动课上学会实用生活技能

2023-03-01