​简介

随着Git的普及,为了更高效地进行团队协作开发,人们通过经验总结研究出了几套适用于各种团队和项目的分支管理策略,上篇文章我们讲解了 Git Flow 代码版本管理策略,它对版本控制较为严格,主要适合开发团队规模较大、开发周期较长,可达几周至几个月的项目,同时,文章提供了版本管理方案图及必要的讲解。

接下来将介绍Git 分支管理策略:TBD++ Flow,该版本管理策略整合了其他策略的优点,适合敏捷开发团队,开发周期长、快速迭代均适用。先看一下工作流图。

TBD++ Flow 工作流图

TBD++ Flow 工作流说明

总体规范建议:

统一以版本号命名,各分支以版本号对应,比如,feature/v1.0 、release/v1.0、tag/v1.0、hotfix/v1.0

1. 主分支 Master

稳定版本代码分支,不能在此分支直接修改代码, 只接受 hotfix、release 分支的代码合并,每次从 release/hotfix 分支合并必须打版本号 tag,以方便后续的代码追溯。该分支上部署自动化测试脚本,在每次代码提交至该分支后都会触发测试,以此保证主分支核心功能的稳定。

2.新功能分支 Feature

新功能迭代开发分支,开发人员在此分支进行编码及代码评审->测试人员进行功能测试->开发人员修复bug->从 master 分支拉取最新代码 ->将测试通过后的代码合并到 master。feature 分支需要定期向 master 分支拉取最新代码。

3.发布分支 Release

feature 分支经过代码评审及功能测试后合并到 master 分支,测试人员再从 master 分支拉取对应的 release 分支。测试部进行集成测试、开发部修改 bug、产品验收。产品验收通过后(发布上线前)基于 release 分支打 tag 进行版本发布,再将代码合并回 master分支,如果代码较为关键,还需要合并到其他的 release 分支。最后可将 feature 迭代分支删除。

4.热修复分支 HotFix

1)如果是在 master 分支发现的bug,则该分支基于 master 创建,bug 修复完成并测试通过后需要合并回 master 分支。

2)如果是在 release 分支发现的bug,则该分支基于 release 发布时的 tag 版本创建,bug 修复完成并测试通过后需要合并回 master 分支、所有涉及的 release 分支以及 master 分支。最后在 release 分支上添加新的 tag。

总结

以上是敏捷项目团队中所推荐的 Git 版本管理策略,我们可以看到上述策略比前文的 Git Flow 简单了许多,少了一个主要的 develop 分支,只需要维护 master 一个主干分支,现代的开发模式中,为更快更好地满足客户的需求,往往采用敏捷迭代的开发方式,TBD++ Flow 版本管理策略既适合周期较长的团队开发,也适合快速迭代的开发模式,它整合了其他版本管理策略的优点,可以在敏捷开发团队中使用。

敏捷开发团队对团队成员的每一位要求比较高,需要团队成员能够编写自动化测试脚本,也需要团队中的每一位成员都能够独立合并自己的代码。

关注微信公众号【技术管理修行】

程序员职业生涯规划,分享程序员进阶架构师所需全部技能,分享程序员如何转管理做技术总监、CTO,分享程序员如何转行产品经理、项目经理

Git 实战分支版本管理策略 | TBD++ Flow的更多相关文章

  1. Git之分支创建策略

    分支策略:git上始终保持两个分支,master分支与develop分支.master分支主要用于发布时使用,而develop分支主要用于开发使用. 创建master的分支developgit che ...

  2. Git 分支管理策略

    分支管理策略 下面我们来说一下一般企业中开发一个项目的分支策略: 主分支 master 开发分支 develop 功能分支 feature 预发布分支  release bug 分支 fixbug 其 ...

  3. Git工程开发实践(四)——Git分支管理策略

    A successful Git branching model https://nvie.com/posts/a-successful-git-branching-model/ Git工程开发实践( ...

  4. git版本管理策略及相关技巧(A)

    公司几乎所有的项目都是使用 git 仓库来管理代码,以前对 git 只有些肤浅的了解,每次提交代码或者上线的时候总是会提心吊胆,生怕出现一些未知的问题.经过三个月的踩坑和填坑, git 操作颇显成熟. ...

  5. 梳理git分支管理策略

    如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System). 眼下最流行的"版本管理系统",非Git莫属. 相比同类软件, ...

  6. git分支管理之分支管理策略

    分支管理策略 阅读: 246888 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就 ...

  7. git多人协作式开发时分支管理策略

    什么是 git-flow? Git Flow是一套使用Git进行源代码管理时的一套行为规范 主分支Master 首先,代码库应该有一个.且仅有一个主分支.所有提供给用户使用的正式版本,都在这个主分支上 ...

  8. git 分支管理策略 与 物理实现 --author by阮一峰 & 小鱼

    -------------------------下面是阮一峰博士的git branch 逻辑结构图示---------------------------------------------- 如果 ...

  9. Git(五):Git分支管理策略

    转:http://www.ruanyifeng.com/blog/2012/07/git.html 如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control ...

  10. [转]Git分支管理策略

    如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System). 眼下最流行的"版本管理系统",非Git莫属. 相比同类软件, ...

随机推荐

  1. 华南理工大学 Python第4章课后小测-1

    1.(单选)下面程序的输出结果是: for c in "ComputerScience": print(c,end="") if c=="S" ...

  2. Linux命令之find、grep、echo、tar、whoami、uname

    1. whoami--查看当前登录的用户名 book@100ask:~/linux$ whoami book 2. echo--打印命令,配合'>'或者'>>'使用 echo 打印信 ...

  3. AOP实现系统告警

    工作群里的消息怕过于安静,又怕过于频繁 一.业务背景 在开发的过程中会遇到各种各样的开发问题,服务器宕机.网络抖动.代码本身的bug等等.针对代码的bug,我们可以提前预支,通过发送告警信息来警示我们 ...

  4. 【原创】FFMPEG录屏入门指南

    下载ffmpeg 点击 ffmpeg官网,选择windows,然后点击Windows builds from gyan.dev: 也可以直接点击 https://www.gyan.dev/ffmpeg ...

  5. 使用Metricbeat监控zookeeper遇到的问题

    1.metricbeat中启动自动加载模块 metricbeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled ...

  6. Elasticsearch的mapping讲解

    映射是定义文档及其包含的字段的存储和索引方式的过程. 映射定义具有: 元字段 元字段用于自定义如何处理关联的文档元数据.包括文档 _index,_id和 _source领域. 字段或属性 映射包含pr ...

  7. Ceph 存储集群 - 搭建存储集群---教程走到osd激活这一步执行不下去了,报错

    目录 一.准备机器 [1. 修改主机名](所有节点)(https://www.cnblogs.com/zengzhihua/p/9829472.html#1-修改主机名) [2. 修改hosts文件] ...

  8. APICloud可视化编程(二)

    上一期我们为大家讲解低代码在国内市场的当前现状以及APICloud可视化开发工具的组件类型和特点.相信大家对可视化编程有了一个整体的了解,那么今天带大家更进一步的使用组件. 下载开发工具 登录APIC ...

  9. SQLServer配置开启TCP/IP连接

    一 先启用SQLServer的TCP/IP协议 1.1 打开SQLServer配置管理器 1.2 启用TCP/IP 二 设置SQLServer端口 2.1 双击TCP/IP,弹出属性设置框 2.2 将 ...

  10. Opencv环境配置及踩坑

    Opencv环境配置及踩坑 1.什么是Opencv OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux.Windows.Android和[ ...