美文网首页
ios开发:git分支管理系统相对标准的方案

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

作者: 狼居胥侯 | 来源:发表于2021-02-22 17:38 被阅读0次

首先列一下我所看到的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到自己的远程分支,保证本地分支的代码与远程分支始终保持一致,即使是功能未完成,跑不起来也要提交,提交之后也不会影响其他人编译他们自己的分支上的代码。

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

相关文章

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

    首先列一下我所看到的git分支管理: 其中:中间的 代表的是远程分支, 代表的是程序猿自己本地的分支。 这种常见的...

  • ios git的使用

    git本地操作 git团队开发操作 git分支管理 gitHub使用

  • 关于git分支整理

    git分为远程分支和本地分支两种,好的git模式会有一个master分支,管理者为当前开发leader,所有开发人...

  • 敏捷式、瀑布式与git分支管理的关系

    需求生命周期阶段和git分支 我们的项目代码使用git来管理,需求要经历技术方案设计、开发、测试、部署上线等生命周...

  • iOS端组件化架构开发与管理

    iOS组件化参考: Casa大神的iOS应用架构谈 组件化方案 组件化架构漫谈 开发管理 得益于Git&Cocoa...

  • 版本控制系统Git进阶(一)

    上一篇版本控制系统Git 入门(三) 分支管理 强大的分支管理是git的一大优势之一,当然有集中式管理系统SVN的...

  • git 常用操作

    Git是流行的分布式项目版本管理系统,利用git flow这个优秀的分支模型可以实现多人合作开发项目;在 gith...

  • git常用命令

    分支管理 git 切换分支 git 查看远程分支 git 查看本地分支 git 创建本地分支 git 删除本地分支...

  • git分支相关内容

    Git 分支管理 几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影...

  • 和Leon一起从头学Git(四)

    Git 分支管理 几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影...

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/apqkfltx.html