一、 Git Flow 工作模型的原理
无规矩不成方圆,但是规矩太多了,则感觉到束缚。我们一个人工作的时候喜欢无拘无束,想怎么干就怎么干,没有人评判,没有人检验。时间久了就会盲目自大,以为增删改查熟悉业务就能够搞定一些。但是当项目逐渐扩大,原来的灵活逐渐变成了混乱,原来的快速迭代因为过于随意的代码,而开发进度迟迟不前。掌握一种规范,便在处理类似问题的时候有章可循,也能够快速的融入一个团队。另外所谓规范,可以说是比较好的实践,按照规范来,项目也能稳健的发展。
(资料图片仅供参考)
Git Flow 就是如何使用git 分支的一种规范,或者叫做推荐。
根据Git Flow 的推荐,我们要将Git 的分支分为 master
、develop
、hotfix
、release
、feature
这五个分支。各种分支分别负责不同的功能,平时开发的时候各司其职,因此会有比较小的冲突率。那么可以用这些减少冲突的时间,少加会班,多有点自己的生活岂不快哉。一图胜千言:
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 工作原理无规矩不成方圆,但是规矩太多了,则感觉到束缚。我们一个人工作的时候喜欢无拘无束,想怎么干就怎么干,没有人评判,没有人检验。时间久了就
-
视讯!通灵股份:3月13日获融资买入347.90万元同花顺数据中心显示,通灵股份3月13日获融资买入347 90万元,占当日买入金额的6 35%,当前融资余额5272 07万元,占流通市值的1 81%,低于历史4
-
什么是元电荷 焦点资讯欢迎观看本篇文章,小勉来为大家解答以上问题。什么是元电荷,关于元电荷的简介很多人还不知道,现在让我们一起来看看吧!1、基
-
当前看点!泸州新型冠状病毒肺炎疫情:3月14日泸州疫情最新消息今天数据统计情况通报泸州新型冠状病毒肺炎疫情:3月14日泸州疫情最新消息今天数据统计情况通报,截至3月14日00时30分泸州疫情数据统计情况
-
中国服装品牌排行榜前十名公司_中国服装品牌排行榜|当前独家1、 现代人对于服装的选择可真是越来越挑剔了,那么你知道中国服装的 品牌有哪些吗,下面小编为大家介绍10个中国服装的品
-
陈梦2-3不敌罗马尼亚老将萨马拉,无缘WTT大满贯第三轮本文转自【澎湃新闻】;WTT新加坡大满贯赛现巨大冷门。13日下午,在女子单打第二轮比赛中,奥运冠军陈梦2比3(11比6、6比11、11比2、6比11、8
-
当前速递!奔腾b50保养灯怎么归零_老司机经验总结欢迎观看本篇文章,小勉来为大家解答以上问题。奔腾b50保养灯怎么归零,老司机经验总结很多人还不知道,现在让我们一起来看看
-
世界新动态:亚宝药业3月13日盘中涨幅达5%以下是亚宝药业在北京时间3月13日13:16分盘口异动快照:3月13日,亚宝药业盘中涨幅达5%,截至13点16分,报7 05元,成交1 83亿元,换手率3 44%
-
视讯!吃肾宝后早上天天晨勃正常吗女_吃肾宝后早上天天晨勃正常吗1、类肾药是修复和滋养肾脏的药物,对肾虚、阳痿、早泄等疾病的男性患者有较好的治疗作用。2、如果服用肾宝药,每天早上都会有
-
工作计划及措施写作要领(7篇)|世界观点工作计划及措施写作要领第1篇机关人员大体分四个类型:一是能办公,二是能办事,三是既能办公又能办事,四是既不能办公又不能办事。当然是极少
-
世界观速讯丨火影血狱大战_火影血狱1、我认为这是火影剧场办最成功的,因为这时的鸣人已经非常强大了,并且内涵也越来越深了,激战也很华丽。2、我来说明一下,首
-
【环球热闻】《庆余年2》被指阵容换血:肖战、郭麒麟退出,费启鸣或演范思辙《庆余年》第二季终于快要来了,只不过续集能否聚齐原班人马始终是一个大大的问号,3月12日,就有爆料称《庆余年2》中的演员阵容有变动,肖战
-
单位矢量有哪些_矢量有哪些1、* bw是包含各种像素信息的一种黑白图形文件格式。2、* cdr是CorelDraw中的一种图形文件格式。3、它是所
-
网传《庆余年2》大换血?主演除了张若昀,全都不演了?其实只要男主张若昀不换,其他人换不换都无所谓,这部剧的高光点本来就全部都在男主和庆帝斗智斗勇上,其他人都只能算陪衬,换不换人无所谓。
-
【天天新要闻】和弦走向什么意思_和弦走向1、和弦走向的“一般规律”是:Ⅰ—Ⅳ—Ⅴ—Ⅰ,Ⅰ—Ⅵ—Ⅳ—Ⅱ—Ⅴ—Ⅰ,这是一般规律。2、在为旋律配置和弦的时候是要
-
全球快播:怎么处理高低眉_高低眉处理步骤1、先确定眉形2、如果有更多的噪声,您可以先修剪掉拐角处多余的噪声。注意头发的修剪,而不是眉毛的修剪。先不要修眉。一定要
-
环球关注:妈妈侧躺时胎儿在肚子里的姿势_胎儿在肚子里的姿势1、疾病分析胎儿在肚子里的姿势也叫胎位。2、常见的胎位有三种:头位、臀位和横位。3、头位是指头低臀高的正常胎位,大部分可
-
我想要住在你心里歌词_我想要住进你心里歌词1、戴佩妮-防空洞mpbzmtv com还记得那一次你将你的手小心的放进我的口袋轻声的说不要颤抖还记得那一次你擦干我的泪
-
拉塞尔:范德比尔特做出了很多牺牲 他就是个赢家!_全球速读拉塞尔:范德比尔特做出了很多牺牲他就是个赢家!,赢家,湖人,美国篮球,多伦多猛龙队,英国政治人物,奥林匹克运动会,康内留斯·范德比尔特,威廉
-
每日热讯!天润佳苑(西区)项目全面封顶天润佳苑(西区)项目全面封顶
-
t是什么意思单位名称_t是什么意思单位1、t是质量的单位,意思是“吨”;容量单位,即“兆兆字节”。日常生活中,常用“ton”或“t”来衡量较大物品的重量。英语
-
当前快看:有人做过激光去痘吗?效果怎样?做激光祛痘后的效果是比较好的,可以使一个人的皮肤恢复到光滑洁净的状态,而且创伤性很小,不会留下疤痕,是去痘的好方法,但是求美者一定要
-
混沌之祸1、《极灵混沌诀》是一本连载于起点中文网和创世中文网的东方玄幻小说,作者是若雨随风。2、小说讲述了一个身陷残疾的少年沐辰
-
螃蟹的营养价值_吃螃蟹好处多多-环球看热讯1、螃蟹含有大量的蛋白质且大部分是优质蛋白质,这些优质蛋白质还含有氨基酸。因此具有抗感染、促进伤口愈合的作用。2、螃蟹中
-
南宁市开展公路交通安全“春季守护行动” 严查严控严管各类交通违法行为 重点聚焦南宁市开展公路交通安全“春季守护行动”严查严控严管各类交通违法行为
-
blake lewis 世界新资讯1、JennyLewis(珍妮刘易斯)是美国歌手、音乐家、演员。2、主要电影作品有《闪电狗》。3、珍妮刘易斯(戴刘易斯
-
Mysteel周报:山东建材价格小幅上涨 厂库社库延续降库态势 当前视讯本周山东建材市场价格小幅上涨。截至3月10日,山东莱芜地区莱钢HRB400EФ18mm主流报价4240元 吨,较上周五上涨60元 吨。近期省内钢厂仍以控量
-
环球头条:今日一花一世界,一叶一如来,禅定无烦恼,心如莲花开一花一世界,一叶一如来,禅定无烦恼,心如莲花开很多人还不知道,现在让我们一起来看看吧!1、这是一种境界一花一世界,一叶一如来--------《华严
-
亚克力板怎么弯曲_亚克力板规格|环球报资讯1、PC耐力板规格:厚度:2 0mm-12mm长度:(卷板)30m-50m宽度:1220mm-2100mm还有的厂家可以
-
持续3年!西安市首次野生植物资源调查工作启动_环球观天下野生植物资源作为自然资源的重要组成,是生物多样性的主要物质基础之一,在自然生态系统中发挥着不可替代的作用。西安市地处秦岭