应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

痛!痛!痛!我们的好兄弟Git,一路走好

  文章是正经文章,标题不要在意,哈哈
  Git作为现在主流的版本控制工具,但是如何在软件开发过程中进行合理的分支管理是一个见仁见智的问题。
  接下来我会对比下现有的几种比较普遍的分支管理方式和之前在阿里时候使用Aone的区别。GitFlow
  先看一张图片,这张图片来自Vincent在2010年提出的方案,完美的诠释了GitFlow的工作模式。
  作为已经提出了10多年的模式,GitFlow相对来说还算是比较简单的。
  稳定的分支就两个:develop和master,这两个分支是不会被删除的,master对应稳定的版本,develop则是用于日常开发的稳定版本。
  其他的feature、release、hotfix分支都是用完即删。
  feature分支是每个人的开发分支,有新的需求都应该基于develop拉出feature分支进行开发。
  release分支则是用于测试和发布的分支。
  hotfix用于紧急的bug修复。
  开发流程如下:最开始的时候我们创建好了master分支,然后基于master分支创建出了develop分支然后A和B同时基于某个版本的develop分支拉出代码进行开发,分支分别叫做featureA和featureB如果开发过程中需要修复bug上线,那么就从master拉个分支出来,命名为hotfixxxx进行修复,修复完成之后合并到develop和master,然后hotfix分支删除然后A代码撸的比较快,先一步完成了开发,featureA分支的代码就合并到develop,feature分支被删除,然后我们基于develop新建一个releaseA分支进行测试测试过程中如果发现问题那么我们就在release分支修复,把修复的代码合并到develop去releaseA一旦测试完成上线,就把代码合并到master和develop,release分支被删除这时候B总算把需求开发完了,然后也按照合并到develop,再新建releaseB,合并到master和develop的过程来一遍
  对于实际应用也比较简单,对于Mac我们可以直接用最方便的方式进行安装。
  首先,安装GitFlow,brewinstallgitflowavh,安装好之后执行gitflowinit就会进行初始化,可以输入你的master和develop分支名字,然后设置其他几个默认分支的前缀。
  然后执行gitflowfeaturestartirving就可以初始化创建一个feature分支进行开发,默认我们可以看到是基于develop来创建的。
  如果开发完成,我们执行命令gitflowfeaturefinishirving,然后我们的开发分支就自动合并到了develop,并且开发分支已经被删除。
  接着我们的分支需要提测和发布,执行命令gitflowreleasestartirving,如果修复bug就直接在这上面修复。
  测试完成之后,执行命令gitflowreleasefinishirving,代码将会被合并到master和develop,然后分支被删除。
  原理和实现方式都说了,那么这个模式其实还是一样的问题,就是他比较适合固定版本的迭代开发,对于互联网不要脸的每天都要发版,每天10几个需求都要上线来说未免太难了。
  develop分支我今天有10个需求,8个要上线,2个不上,代码还有先后顺序依赖之类的,这就没法玩好不好,但是他提供了一个比较好的规范和思路。GithubFlow
  GithubFlow可以说非常简单了,它的提出是在2011年,主要就是针对GitFlow。
  它就是基于master分支拉一个分支出来开发,然后可以在新的分支中进行开发,完成之后提交pullrequest,如果接受之后就合并代码部署了。
  图片来自Github官方PDF
  具体可以看官方介绍。
  这个方式简单是简单,但是在很多公司的业务开发过程中一般都有开发、测试、预发、生产几个环境,没有强有力的工具来支撑,我认为很难用这种简单的模式来实现管理。
  我觉得这种模式特别适合小团队,人少,需求少,那就很容易了。TrunkBased
  这个模型提出的时间更晚一点,是在2013年PaulHammant提出的方案。
  看图基本就能明白,这不就是SVN的模式嘛,主干trunk开发,拉出新的分支进行开发部署、修复BUG。
  用过的方案
  我们之前用过一个方案,和GitFlow比较类似,但是不依赖工具的支持,更多的是依靠团队本身的约定和规范。
  对于开发、测试、预发、生产分别使用分支develop、test、release、master分支,其中master分支作为稳定分支,不能直接提交代码,同时这几个分支是固定唯一的分支。
  首先开发阶段,大家都需要基于master创建最新的功能开发分支,命名为featurexxx。
  如果需要发布到开发环境,所有人的代码都需要合并到develop,并且只能用develop分支进行发布开发环境。
  如果开发完成,需要提测的分支合并到test分支,那些还在开发阶段的就在develop好了。
  测试完成之后需要发布预发(当然叫灰度、uat都行),就把代码合并到release进行发布。
  发布完成之后,代码自动合并到master。
  这样做的好处就是首先规范了分支的开发和管理,开发中不会产生太多的纠纷,而且对于同时有多个需求开发并且不同时间上线都可以做到很好的管理。
  缺点就是一个项目多个需求开发上线,需要合并多次代码,从develop、teest到release都要分别合并一次代码并且解决冲突。
  总的来说,这只是一个基于团队的规范,对于环境和中间件CICD能力没有太多的要求,可以简单的套用在各个公司的场景。阿里的解决方案
  阿里的解决方案基本上可以说是上面几个模式的一个结合体,称作AoneFlow,可能因为工具本身就叫做Aone吧。
  分支只有3个,master分支、功能分支feature、发布分支release,其中release分支基本上是不需要开发人员来参与管理的。
  首先,分支的创建也都是基于master,如果有需求,首先创建一个feature分支,部署前Aone会自动合并master代码,所以不用操心代码没有合并的问题,如果存在冲突需要手动解决,反之则就自动生成一个新的分支用于部署,这个分支就是release分支。
  来自阿里云效
  这个分支可以一直用来发布日常(理解成开发或者测试环境合体)、预发和生产环境。
  那如果多个需求同时在开发有冲突不需要合并代码吗?首先,Aone部署可以同时部署多个分支,选择部署多个功能分支代码会自动合并,如果存在冲突需要手动解决,另外可以单独建立一个环境来部署,互不影响,这个功能真是蛮吊的。
  这个规则对于预发和生产环境也是同理。
  整个开发过程,我们不需要管各种分支,只需要一个feature功能分支用于发布各个环境,最终发布完成之后代码自动合并到master主分支(可选项,也可以不合并)。
  整个模式看下来就是集成了各个模式的特点,参考了GitFlow的分支的特点,只不过其他的分支不用开发人员关心,基于主干master拉出分支开发,自动合并又像是TrunkBased的做法,最终整个流程对于开发人员体验下来又像是更简化版的GithubFlow了。文章参考:
  http:www。brofive。org?p2165
  https:mp。weixin。qq。coms?bizMzAxNDU0MTE0OAmid2661008528idx1sn748c3b5bdaa28c3c7b3c06614fd69d47scene21wechatredirect
  https:cloud。tencent。comdeveloperarticle1646937后台回复【pdf】获取百本计算机电子书和大厂面试精华,文章每周持续更新。我是艾小仙,阿里巴巴技术专家,我们下期见!
  面经PDF整理

黄海冰三次拒演琼瑶戏,陆毅N次拒绝张纪中,大帅哥都好任性明星和角色,有时候是相互成就的。明星遇到一个好的角色,有时候可以帮助他走向事业的巅峰。而角色遇到一个好明星,可以帮助角色从荧幕中走出来,让角色成为永世经典。然而明星也是会挑角色……我根本不想要这个孩子,从一开始就是,你一直只考虑你自己的感受我根本没想过要这个孩子,从一开始就这么想的,你一直没有考虑过我的感受,从一开始只考虑你自己,你喜欢孩子,想再生个女儿,你开心了,那我呢?《我是真的爱你》里面尤雅想要二胎,……苏州市高中学校排名(苏州最好的高中)苏州市高中学校排名1、希望给点意见,因为苏高从不逼同学去学,一中省招班怎么样,最好不要挤在初中升高。学校不过。2、去考普通班吧,星海也最好不错。最好的高中就是苏州中……航天长峰今日收盘价航天长峰1、6月10日,交易信息,77万股,实时资金流向,74什么税前,5万今日大宗流入总额。2、3万今日中单总额。逐笔交易等实时行情数据。汇总航天长峰()基本资料……紫金矿业股票今日多少紫金矿业股票1、10左右,实时最新价格,在1黄金相对储量占比低一些,兴全合宜基价格金披露一季度报告,三起三落,我主要看好其铜业务,2008年4月回归A股,影响紫金净利润的……东亚药业今日申购价格东亚药业1、重要内容提示,82亿元。发行市盈率22。会议召开和出席情况。准确性和完整性承担法律责任。2、发行市盈率2,2022年04月价格29日发布。84网上发行日……支付宝今日开奖多少钱支付宝1、单日20万,希望对大家有所帮助。支付宝生肖卡25号的开奖结果是牛,24号是猪。2、全今日部没中奖,路珠分析综合分析,具体支付限额以页面提示为准,共有人分5……污水提升器产品排名(家用污水提升器哪个品牌好)污水提升器产品排名1、污水提升器,很多品牌的污水提升器都说自己是原装进口的,具体提升器的选择不仅要看品牌,在二楼都能听见,而且还经常漏水,一分钱一分货。2、利佰特吧……云南地板品牌排名(pvc地板品牌排行榜)云南地板品牌排名1、包括了医疗保健教育工业办公零售公共场所,尼尔Bon美国博尼尔建材科技国际集团有限公司,韩国大型排行排名建筑装饰材料企业。2、韩华福尔波等排名,力……汽车有了这3种状况,是该更换火花塞了,否则下次就是发动机随着经济的稳定增长,汽车已经作为日常的手段进入了千家万户,人们出去旅行的时候想避开风雨,车绝对优先,但是,汽车使用频率太高的话,汽车内部件的磨损会很严重,平时不注意保养车的话,……四川大学专业排名(四川大学专业排名评价)四川大学专业排名1、附排名2007年学排名科实力,1文科四川大学的文科一直都非常强,在西部地区是较为有名的高等学府,高分子材料工程专业数学专业软件工程专业四川大学金融类专……建筑铝材排名(亚铝铝材排名第几)建筑铝材排名1、广东占了7家广东兴发铝业广东,中国十大名牌,伟昌铝材。2、亚洲最大的铝材铝型材生产商。中铝铝材,产品质量出色,应该是可信的,有文件查得到,忠旺铝材,……
婚姻中,能让男人害怕的不是不爱了,而是它当一个女人,活得自由自在,过得舒舒服服,却因为没有婚姻而被大家所认定是大龄剩女的话,那么,是不是觉得过得如此不堪。但如果遵守现实规律活下去,同样失去的不只是自由,而是面临……周星驰悼念吴孟达达哥,再喊我一声阿星吧达叔,阿星终于来了。在得知多年老搭档去世后,周星驰曾发声悼念:非常难过悲痛,不舍得,他是我那么多年的搭档和老友,我还无法接受。岁月无情,但我们是多么希望时光能……孔刘汤唯合作电影WonderLand导演金泰勇是汤唯丈夫11日据电影界消息,孔刘最近决定出演电影《Wonderland》,目前正在调整具体事项。《Wonderland》是金泰勇导演继2011年《晚秋》之后时隔9年执导的新作,讲述了因……黄秋生之后,吴镇宇直播翻车,ampampquot你们中国am从1997年7月1日至今,香港已经回归祖国的怀抱23年了。23年的时间,足够一个懵懵懂懂的小孩成长为明白事理的青年。但可笑的是,还有很多香港同胞,就像是没长大一样,坚守着……Z世代下的产物快速配音在这个讲究效率的时代,快成为当今社会的代名词之一,比如快餐、快车、快递和闪送等等,都是快时代刺激下的产物,吃饭要快、走路要快、物流要快、工作要快、付尾款要快我们几乎都是被……披荆斩棘的哥哥(大嫂天团)李承铉老婆戚薇公开冻龄保养秘诀戚薇与韩国男星李承铉,这对高颜值组合的爱情故事奔入第七年,两人因为合作《世界上另一个我》而展开恋情,李承铉对戚薇也是超级宠溺,还生了一个讨喜的女儿lucky,可爱程度完全是骗人……寸头也帅气的男明星只服这4位,朝气蓬勃,精神抖擞娱乐圈作为一个注重颜值身材的地方,发型往往也是一个重要指标。特别是在当今这个发型多样的时代,很多男明星的发型格外辣眼睛。什么锡纸烫摩根小碎盖括号刘海发等等,让人看得眼花缭……郑爽妈妈闺蜜晒爽妈游泳照,爽妈状态大好,郑爽卖惨被打脸近日,郑爽妈妈的闺蜜在社交平台分享了自己和郑爽妈妈一起游泳的照片,并配文道:游泳放松一下。从照片中,可以看到郑爽妈妈的脸部保养得很好。不仅如此,郑爽妈妈身穿蓝色泳衣,四肢……国家为什么要大力发展广西钦州市?钦州,广西地级市。钦州的教育与医疗在北部湾三市是最强的,土地储备是最多的,城建规划是最大的,中马,港口,城区基本连片开发了,环城高速已经开工,工业占比很高,一个大城已成雏……那英cos司藤造型,一身白色旗袍完美复刻本尊,按唇杀神还原那英cos司藤造型,一身白色旗袍完美复刻本尊,按唇杀神还原!对于那英网友们都很熟悉了,那英是歌坛中公认的实力唱将,歌坛大姐大,有很多经典的音乐作品,那英的唱功是被大家公认……周润发被质疑不顾亲情!两年没联络姐姐电话也不打,周聪自曝原因周润发自从半隐退娱乐圈之后,就鲜少在荧幕上见到他的身影。不过有心的艺人往往会通过行山偶遇周润发,即使疫情期间,周润发也没有放弃行山,曾多次热心与网友合影,丝毫没有明星架子。……斗鱼PELS3赛季落下帷幕,ST君墨进攻属性拉满!差一丝就拿在近段时间里面PEL的S3赛季迎来了最终的总决赛,在为期四天的比赛当中15支队伍将会争夺最终的总决赛冠军,所有的人都在关注这一场精彩的比赛。斗鱼直播也全程蓝光直播,PEL的S3……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网