范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

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

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

亮剑难怪五师师长不敢惹李云龙,你看段鹏手里拿的啥?要说亮剑最成功的地方,就是成功塑造了李云龙的这个人。这部剧弱化了当时的背景,神话了李云龙这个战场上的将军,这也是这部剧的出彩之处。李幼斌把李云龙这个角色演得太到位了,李云龙像只狐狸甄嬛传眉庄两次怀孕,为何宜修都不敢动手,你看太后干了啥眉庄是难得被太后看上眼的妃子。太后乌雅氏是上届宫斗冠军,在宫里混了这么久,早就见惯了那些勾心斗角,所以对帝王的妃子一向都不怎么喜欢。就连雍正当时最宠甄嬛时要带甄嬛来见她,太后都是说叶澜依无视宫中礼仪,连太后都对她不满,为啥雍正却一直护着她?叶澜依也算得上是雍正后宫里的一朵奇葩了。她是雍正后期的宠妃,进宫就获得了雍正的专宠,性格又桀骜不驯,才是答应就敢顶撞皇后。太后也不喜欢这种不懂规矩的女人,让叶澜依住在离自己不远处,甄嬛从甘露寺回宫时,为何要戴一金一银?难怪宜修笑都挂不住了甄嬛传这部剧最精彩的剧情,是从甄嬛从甘露寺回宫后开始的。这时的甄嬛已经不比之前,她这次回宫心境已经大变,对皇后也有了防备。怀着孩子回宫的她,这一次就是宜修最大的对手了,就拿甄嬛回宫与惠嫔生女,迎娶曹贵人,他才是甄嬛传最大的赢家导语与惠嫔生女,迎娶曹贵人,他才是甄嬛传最大的赢家!论起现实和电视剧的结合,其实最大的BOSS应该是太医温实初。虽然为了演戏的需要大家不得不特意扮老,但是在真实人生中,张晓龙喜提中错换人生案第二次庭审结束后,许敏终于出手了,向网暴者追究责任错换人生案第二次庭审结束后,许敏首次出来在某平台上发表声明,然而,仅隔两个小时,杜新枝也在某平台上发表了声明,杜新枝如此迅速的回击,真是令人咋舌。许敏在声明中,首先向那些一直关心和水军无良伪造录音伤害姚家姥姥三石无耻恶转贴文离间母女感情录音曝光,90岁高龄的姚姥姥百口莫辩进入8月,28案因为吴亦凡事件赵薇事件钱枫事件美军逃离阿富汗台湾疫苗事故等爆炸新闻抢去了热度而冷却了下来。8月初,除了几个要死不活的郭家水军偶尔28案被当成法学教材搬上电视屏幕,于律师的解读令人大跌眼镜蹭热度,电视台也不甘落后,28案房产之争被搬上电视,律师帮帮忙频道上热搜近日,哈尔滨电视台生活频道上,一档名叫律师帮帮忙的节目借助错换事件登上热搜。据说该节目是档新节目,所以特别爱延禧攻略乾隆路过延禧宫时,璎珞为何非要紧闭宫门?这心机绝了导语乾隆路过延禧宫时,璎珞为何非要紧闭宫门?这心机绝了乾隆为什么对魏璎珞情有独钟呢?这真的是一个很值得探求的地方。编编觉得,乾隆喜欢魏璎珞的原因,除了魏璎珞和自己灵魂上的共鸣以外,延禧攻略得知尔晴怀孕时,富察老夫人夸了一句话,傅恒杀意顿起导语得知尔晴怀孕时,富察老夫人夸了一句话,傅恒杀意顿起!傅恒一直都是一个寡言隐忍的人。有时候这种性格真的有够吃亏,因为顾虑太多,又不能直接将感受说出来,就给自己平添了许多烦恼。傅恒璎珞追杀弘昼时,为何大力撕扯开自己的衣扣?乾隆果然上钩导语璎珞追杀弘昼时,为何用力扯开自己的衣襟?乾隆果然上钩魏璎珞和弘昼的战争真的十分精彩,与其说弘昼的出场是用来拉仇恨的,不如说弘昼就是一个工具,是用来证明魏璎珞,有多爱她的姐姐的证
2天狂砍7661万,击败张艺谋吴彦祖,这部好莱坞大片爆了最近票房市场一片火热,王千源吴彦祖除暴热度爆棚,而张艺谋新片一秒钟更是来势汹汹,掀起了11月末一波观影高潮。而今天要说的这部却相当不一般,两天狂砍7661万,击败张艺谋吴彦祖,这部8项提名,7项陪跑,它成第32届金鸡奖最大输家11月23号晚,第32届中国金鸡奖正式揭晓,林超贤凭红海行动夺最佳导演奖,影片地久天长获得最佳男主角最佳女主角最佳编剧共三项重量级大奖,成最大赢家!不过有一部影片同样是超级大热门,大罗山双岙峡谷爬行溯溪穿越攻略指南双岙峡谷位于永中双岙村。玩法一需原路返还的。自行开车导航永中双岙公园到达公园边上停车场。我们这次就是这样的行程。这几年双岙村变化好大,不仅修建了双岙公园,还有厕所停车场等等。沿着水我憧憬的老年生活你憧憬的老年生活是什么样老年人有好身体最重要。要坚持锻炼,好的身体才不给其他人添麻烦,特别是唯一的孩子还不是跟你在同一个城市生活的。要有个感兴趣的事在做,如爱手工做手工,爱看书就看风起霓裳宫廷剧里又一部翘楚,卓锦娘真狠,李芯逸坐等挨骂吧风起霓裳是由许魏洲娜扎主演的宫廷剧。剧里裴行俭(许魏洲)小时候救过琉璃(娜扎),两人也算是有过命交情了吧!分开时琉璃还把娘亲留给自己唯一的遗物放到裴行俭框里,也为后续交集埋下伏笔。baby时尚杂志曝光,豹纹连衣裙撑身,被指难驾驭,女王范十足说起杨颖,她一直都是众多宅男心目中的女神,凭借着自己婀娜多姿的身材以及精致的五官,吸引了不少人的注意力。杨颖出生于魔都上海,她童年的快乐时光都是在上海的小弄堂里度过的。在她小的时候富女陈妍希忠于表演,亲切导演,细数她的发展成名史1983年,宝岛台湾陈家迎来了一位小公主的出生,她的父母认为姓名字数越多越值钱,就给小公主取名为陈玫璇。小公主一出生就有着别人无法比拟的财富,因为她爸爸开了一家跨国贸易公司,按照她她拍一部戏片酬高达8000万,如今却因为谣言名誉尽失损失惨重网剧近几年逐渐发展起来,真正意义第一部网剧还是张天爱的作品。张天爱凭借一档综艺再次回归大家视线,节目邀请张天爱也是因为她通过健身改变身材,作为一个正面案例想把这样的效果呈现给观众。詹妮弗劳伦斯的家庭农场失火,损失惨重后呼吁众人捐款重建大表姐詹妮弗劳伦斯一家曾在肯塔基州为孩子们举办夏令营的农场,在上周末的一场悲剧火灾中被夷为平地。由大表姐的弟弟布莱恩劳伦斯拥有和经营的HiHo营地上周五晚上被大火吞噬,当局仍在调查老年人相亲,要想让男方自愿上交工资卡,只需做到3点知否里明兰说过养老,千子万子,不加身边的银子。说明从古至今,钱对养老的重要性,尤其是老年人想再婚结伴养老,谁管钱更是一个敏感的事情。都说有钱决定着有权,老两口中有钱的那一方掌控着家影后和名嘴的爱情故事,10年前章子怡和撒贝宁为什么会分手?撒贝宁,北大法学本科研究生双保送生,主持人行业的奖项基本已经尽收囊中。央视数一数二的主持人,应变能力和风趣幽默深受观众喜欢。2016年,撒贝宁和加拿大人李白在武汉举行婚礼,2019