ios开发:git分支管理系统相对标准的方案

首先列一下我所看到的git分支管理:

市面上常见的分支管理方式

其中:中间的Origin代表的是远程分支,Native代表的是程序猿自己本地的分支。

这种常见的分支管理方式很普遍,但是同样,我认为也没有用到点上,是处于最低端的,git的用法可不仅仅在于这些。

首先,我先绘制一下我所说的相对标准的git分支管理方案:

相对标准的分支方案

接下来我会以腾讯工蜂系统对以上步骤详细解读一下(Origin代表的依旧是远程分支,Native代表的依旧是程序猿自己本地的分支):

  • 步骤1:基于master检出远程分支的dev.1.0分支,这个dev.1.0为1.0版本的总分支(这个比较简单,略过)
  • 步骤2:主管对远程分支的dev.1.0进行加锁,如下图:
    腾讯工蜂系统某一分支页面

    其中:点击左1红色框可选择某一远程分支,左2红色框为当前的分支(dev.1.6.2),左3红色框为加锁按钮。

点击左3红色框的加锁,可以看到:


加锁的描述

点击底部绿色“创建锁”即为创建锁成功。(看下上图对于锁的描述与目的,这是很重要的思想)

  • 步骤3:基于远程分支的1.0总分支,创建属于自己的远程分支,之前的规则为dev.1.0.程序猿名字简写或全拼

  • 步骤4:团队下的程序猿将自己的远程检出到本地

  • 步骤5:提交自己代码到远程分支(直接push,没必要执行pull等操作)

  • 步骤6:因为步骤2加锁的缘故,并不是所有人都有对dev.1.0的修改权限,所以在git地址上,创建一个merge请求,目的是将自己远程分支上的代码合并到dev.1.0这个版本总分支上,同时艾特同组人员进行代码审核,如下图:

    创建merge请求页面

    点击左侧红色框,后再点击右侧红色框,则如下图:
    选择源分支和目的分支(注:当前是以dev.1.7.0.lc为源分支,目的分支是dev.1.5,忽略这个细节)

点击左下角的“比较两分支”,若有未merge的代码,则会跳转到如下页面(这个页面数据较多,以下三张图片连起来则为当前页面的全部功能):


图片1:填写标题,描述以及选择代码评审人,评审人为同组开发者,必要评审人为主管

图片2:选择评审人通过规则,只有达到设置的评审规则,后续主管才能合并代码(评审代码在下图)
图片3:确认源分支和目标分支,并选择是否创建新的分支,以及底部红色框的两个按钮分别为:提交记录与代码变更

鉴于代码安全方面的考虑,就不截图代码“变更”记录了。

  • 步骤7:在Origin:dev.1.0分支上打包,提交审核之后,苹果审核通过之后,Origin:dev.1.0再创建一个merge请求(参考步骤6),将Origin:dev.1.0代码合并到master。这一步骤是为了防止审核不通过,导致master代码与app store的功能不一致。

最后说下这套分支方案的优点:

  • 高效性。很多人会疑问:这套方案看起来复杂,哪来的高效性?其实不然。原因在于步骤3和步骤4的存在,我只关心我自己的功能,其他人提交了什么我不管。如果按照文章开始的那套分支方案,其他人提交了代码,我在提交时,大概率上还要拉取远程分支,最终会导致再次编译,这点我是难以忍受。项目大了,人员多了,耗费的时间会翻倍增长。

  • 流程规范。包含了git相关的所有功能,比如远程分支,本地分支,pull,push,merge等。

  • 安全性。安全性包含了两方面:1.步骤2的远程分支的加锁。2.步骤5的本地分支代码的随时提交,比如中午吃饭,抽烟,开会,下班等出现离开电脑前的情况时,随时将本地代码push到自己的远程分支,保证本地分支的代码与远程分支始终保持一致,即使是功能未完成,跑不起来也要提交,提交之后也不会影响其他人编译他们自己的分支上的代码。

当然,正如文章标题所说,这套分支方案是相对标准,有一定缺陷。随着知识点的增加与编程思想的夯实,我心目中也有一套绝对标准的分支管理方案,后续有时间我会更新。

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

推荐阅读更多精彩内容