git workflow

 git因为有分支的存在,才构成了多工作流的特色。在多人协作的项目开发中,分支很多,虽然各自在分支上互不干扰,但是我们总归需要把分支合并到一起。真实项目上会遇到很多问题,比如版本迭代、版本发布、bug修复、临时新增功能等等,为了更好的管理代码,需要制定一个工作流程。这个时候就出现了git flow、github flow、gitlab flow,当然也有很多公司将它们混和使用。

 其中git flow出现的最早,github flow 在git flow的基础上,做了一些优化,适用于CI。而gitlab flow出现的时间较晚,所以综合前面两种工作流的优点,制成了一个新的flow。

git flow

 git flow可以大致分为主要分支和协助分支。

主要分支

 在git flow中代码仓库中会一直存在以下两个分支:

  • master
  • develop

 其中origin/master分支上的最新代码永远是版本发布状态,origin/develop分支上对应的是最新开发进度。

 当develop上的代码达到稳定程度,可以发布版本的时候,develop这些修改的方式会以一些特定的方式合并到master上去,然后标记对应的版本号。

协助分支

 除了主要分支,git flow的开发模式还需要一系列的协助分支,来帮助更好的功能的并行开发,简化功能开发和问题修复。协助分支分为以下三类:

  • Feature Branch
  • Release Branch
  • Hotfix Branch

 Feature分支用来做分模块功能开发,命名看开发者喜好,模块完成之后,会合并到develop,然后删除自己。

 Release分支是用来做版本发布的预发布分支,建议命名为release-xxx。例如在1.0.0版本,develop分支功能全开发完之后,提交给测试之后,会从develop分支拉出一个Release-1.0.0分支,测试给推送给过来的小问题,在release-1.0.0分支上修改,测试完毕准备发布的时候,会把代码合并到master和develop分支上,master分支合并完后会打对应的tag,比如v-1.0.0。为了在测试的时候不影响下一个版本的功能并行开发,删除对应release分支。

 Hotfix分支主要是为了解决正式上线版本有一些紧急的bug。比如线上版本上出现了很严重的bug,需要理解修复。这个时候我们需要从master拉出一个对应的分支,比如取名hotfix-xxx,解决完bug,提交测试,没问题然后合并到对应到develop和master,并给master打对应的tag。然后删除hotfix分支。

看看官网的流程图:


git flow

官网推荐我们git merge的时候加上 no-ff参数,意思就是不用fast-forword的合并方式,而是有策略的合并,这样会让我们多一个合并提交。这样保证了一个很清晰的提交历史,可以看到被合并分支的存在。


区别

github flow

github flow就简单太多了,他只有一个长期分支-master分支。这个分支上的代码永远是发布状态。一般这个分支的会设置protected分支保护,只有有权限的人才能推送代码到master分支。

当需要开发新功能时,需要从master分支创建一个功能分支。本地分支开发完代码之后需要定时向远程分支推送代码。当你需要帮助或者你想合并分支的时候,可以发起一个pull request(对应的gitlab merge request),当review或者讨论通过后,代码会合并到目标分支,一旦合并到master分支,就应该立即发布。。

通常这个会配合ci同时使用,当代码一有变动,就自动发布。这里pull request就跟拉个讨论组差不多,提供了评论功能支持。可以选择相关的人参与,而且参与的人还可以向你的分支提交代码。还有一个issue tracking(问题追踪)功能,也就是提交信息中包含 fix #1等信息就可以自动关闭对应的编号的issue,一般未解决的issue为open,解决了就是closed。

gitlab flow

gitlab flow的出现当然是为了补足git flow、github flow的不足。
git flow暴露了很多问题:

  1. 默认工作分支是develop,需要从master切换。
  2. hotfix和release分支他们分别从master分支、develop分支创建,使用完毕后,必须合并回master和develop,可能在实际开发中会忘记。
  3. hotfix和release分支在快速迭代的项目里,基本用不到,开发完就直接合并到master了,出现问题develop修复直接发布下一个版本了。

github flow简化了git flow的流程,一定程度上解决了上面的问题,还提供了ui操作工具。但是github flow也会存在一些问题,比如:

  1. 版本发布会被推迟(比如并行开发移动端,需要发布)
  2. 需要不同环境的部署(例如:测试环境(即之前公司用的uat),预发环境(之前公司用的stage),正式环境(之前用的console));
  3. 不同的版本发布和bug修复。(所以一个分支根本不够。)

针对问题1. gitlab flow 就提供了prodution 分支,比如上面说的console。专门同来发布版本。
针对问题2. gitlab flow提供了 多个prodution分支,比如uat,stage,console。uat没问题上升到stage,stage没问题上升到console.
针对问题3. gitlab flow 建议的做法是每一个稳定的版本,都要从master分支上拉出一个分支,发现问题就从对应拉出的分支上创建修复分支,完成之后,先合并到master,才能合并release。

总之,git还提供了很多自定义工作流的hook, .git/hooks目录下。分为客户端hook和服务器端hook。这个我了解一下,感觉git还是很强大的。。

近况

最近换了一个工作,工作虽然是个创业公司,但是不得不说我很满意。大佬们很耐心,会很耐心的教,我们不懂也会提供思路教我们,让我们自己去学,给我们时间学。想起以前十来个模块的业务代码,内心是崩溃的。。如果自己不挤出时间学,是很难有进步的。从去年开始上班到现在(虽然现在还是很菜),但是总体感觉进步了不少(对比以前自己是个天天泡网吧的网瘾少年,除了打游戏啥也不会。),不管是以前公司,还是现在的公司,心里都是非常感谢的。。

不多BB了 ,下面拿出自己尘封已久的博客:CBC
前端登录的时候有点小bug,懂nginx大佬可以帮我看看,登录的时候看下浏览器控制台。当然后台系统就不提供出来了。。
偶尔看看电影可以去这:电影
账号:cbc 密码:674181203
当然你可以注册账号,人脸识别服务器上用不了(没有域名,浏览器不给打开摄像头,本地是可以的),注册的时候可以跳过。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容