一、 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 工作原理|每日热闻
无规矩不成方圆,但是规矩太多了,则感觉到束缚。我们一个人工作的时候喜欢无拘无束,想怎么干就怎么干,没有人评判,没有人检验。时间久了就
-
2023年普通高等学校春季高考招生志愿填报问答
问1:哪些考生可以填报春季高考志愿?答:所有已经参加广东省2023年普通高考报名及2023年第一次普通高中学业水平合格性考试语文、数学、英语科
-
汤镇业当年曾说, 刘德华现在的片酬5000万, 我不羡慕他反而同情他
汤镇业当年曾说,刘德华现在的片酬5000万,我不羡慕他反而同情他,片酬,老汤,记者,刘德华,汤镇业,杜琪峰,华语歌手,华语音乐,实力派演员
-
六国化工:3月15日融资买入292.56万元,融资融券余额9472.9万元 全球独家
3月15日,六国化工(600470)融资买入292 56万元,融资偿还337 82万元,融资净卖出45 26万元,融资余额9239 58万元,近20个交易日中有12个交易
-
微雨入雁山观老僧岩憩石梁洞 当前最新
1、《微雨入雁山观老僧岩憩石梁洞》是清代诗人王又曾创作的一首古风诗。本文到此分享完毕,希望对大家有所帮助。
-
看热讯:海力风电(301155):3月15日北向资金增持2.89万股
3月15日北向资金增持2 89万股海力风电。近5个交易日中,获北向资金增持的有3天,累计净增持8 21万股。近20个交易日中,获北向资金增持的有13天
-
美国多家银行接连关闭两党上演“甩锅大戏”
(来源:央视新闻客户端)多家银行接连关闭带来的影响仍在持续,而美国的民主、共和两党新的“甩锅大戏”已经开始上演。当地时间13日,美国总
-
东安动力(600178.SH)以3.42亿元摘牌福田汽车所持北京智悦发动机60%股权 热消息
智通财经APP讯,东安动力(600178 SH)公告,公司与北汽福田汽车股份有限公司(“福田汽车”)签订《产权交易合同》,收购福田汽车持有的全资子公
-
惠州市第八中学分数线2022高中部_惠州市第八中学分数线 每日热议
1、2021年惠州市第八中学的录取分位线为:529 2分。2、招收对象限惠城区。本文就为大家分享到这里,希望小伙伴们会喜
-
世界热头条丨ppt图片如何排版好看_ppt图片怎么排版才好看
1、七张图片都是等大的?还是有重点与次要的?;如果图片是等大的;完全可以用色块补齐,只要规整就很好看了。2、;如果有重要
-
相互宝怎么取消退保(相互宝怎么取消)
1、打开支付宝软件进入主页面。2、看到工具栏右下角,找到我的然后点击。3、向下滑动找到共有的宝藏并打开它。4、找出互助计
-
昆明市盘龙区总工会打造创新服务链_世界通讯
云南网记者龙舟货车司机、网约车司机、快递小哥、外卖配送员等新就业形态群体常年在外奔波,饮食不规律,驾驶时长期久坐等习惯,导致颈椎及身
-
保险是每个月几号交? 天天即时看
每月10日。社保是月底申报,月初付款,月中扣除。每月1日至10日为社保经办机构的审计期。对已受理的增减业务进行审核结算,
-
天天百事通!计算机专业学生swot分析_计算机专业swot分析
1、去百度文库,查看完整内容>内容来自用户:哑巴怎么说爱用SWOT分析法分析计算机科学与技术(师范)专业情况我的专业
-
DNF怎么赚钱的_dnf怎么赚钱地下城怎么赚钱 世界观热点
1、首先,我们得有点资本。我不喜欢网游里的人民币。所以我选择画画赚钱。也就是说搬砖,就几百万。2、然后你也可以从地图上获
-
世界新消息丨周大生:接受6位投资者调研
周大生(SZ002867,收盘价:15 65元)发布公告称,2023年3月9日、3月10日,周大生接受6位投资者调研,公司董事会秘书及副总经理何小林、证券事务
-
去西藏要准备什么东西_去西藏旅行要准备什么 今日热议
解答:1、洗漱用品,太阳帽,防晒霜和太阳镜,并采取防晒措施。2、准备毛衣,保暖内衣等。冬天气温比较低,更要注意防寒防冻。
-
新疆莎车:热闹的巴扎 世界聚看点
新疆莎车县的一处综合巴扎(无人机照片,3月12日摄)。在南疆,巴扎天由当地约定俗成,在邻近几个乡镇每周轮流进行。每逢巴扎天,周边的老乡和各
-
环球速讯:复旦教授徐静波:大江健三郎是日本文坛异色的存在
复旦教授徐静波:大江健三郎是日本文坛异色的存在,日本,文坛,复旦,记者,徐静波,芥川奖,骑士团,川端康成,大江健三郎,诺贝尔文学奖
-
多元初等函数在其定义域内是连续的吗_什么是多元初等函数
1、初等函数是由幂函数(powerfunction)、指数函数(exponentialfunction)、对数函数(