简介

在团队协作开发中,版本管理工具尤为重要,它可以帮助团队很好地进行代码的共享、回滚等操作,比较流行的版本管理工具有:CVS、SVN、Git。Git作为分布式版本管理工具,优势十分明显,它可以为每位团队成员本地提供一套完整的代码库,这使得开发者可以在无网的情况下将代码提交至本地仓库,减少了对中心服务器的依赖。

随着Git的普及,为了更高效地进行团队协作开发,人们通过经验总结研究出了几套适用于各种团队和项目的分支管理策略,Git Flow 就是其中之一,它对版本控制更为严格,主要适合开发团队规模较大、开发周期较长,可达几周至几个月的项目。接下来,直接展示最终实战方案,如果开发团队和项目类型适合,可直接拿来使用。

Git Flow 工作流图

Git Flow 工作流说明

总体规范建议:

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

1. 主分支 Master

稳定版本代码分支,不能在此分支直接修改代码, 只接受 hotfix、release 分支的代码合并,每次从 release/hotfix 分支合并必须打版本号 tag,以方便后续的代码追溯。

2.主开发分支 Develop

每个feature迭代从 develop 拉取分支,该分支只接受 hotfix、release 分支的代码合并,该分支禁止直接合并到 master。

3.新功能分支 Feature

新功能迭代开发分支,开发人员开发完成后合并生成预发布分支 release/xxx(与 feature 分支一一对应),此分支禁止测试、禁止发布上线、禁止直接合并到 develop、禁止直接合并到 master。

4.预发布分支 Release

feature 分支由开发自测完成后合并到 develop 分支,测试人员再从 develop 分支新建对应的 release 分支。测试部进行集成测试、开发部修改 bug、产品验收。测试通过后(发布上线前)将此分支合并到 develop 和 master 分支,然后可将 release 迭代和对应的 feature 迭代分支删除。

5.热修复分支 HotFix

该分支基于 master 分支创建,用于修改线上发现的紧急 bug, bug 修复完成并测试通过后需要合并回 master 和 develop 分支。

总结

以上是真实项目中的 Git 版本管理策略,其经过了实战的考验,可以拿来即用,我们可以看到上述策略较为繁琐,需要同时维护 master 和 develop 两个主要分支,因此,Git Flow 策略只适合团队规模较大,项目开发周期较长的项目,这个周期可以是几周至几个月,而现代的开发模式中,为更快更好地满足客户的需求,往往采用敏捷迭代的开发方式。

接下来,我将更新一篇适合敏捷管理团队的版本管理策略,供大家参考。

关注微信公众号

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

Git 实战代码分支管理 | Git Flow 策略的更多相关文章

  1. python使用git进行版本控制-分支管理

    1.远程克隆 最好的方式是先创建远程库,然后,从远程库克隆: 首先在github上创建一个新的仓库,名字叫gitskills 我们勾选Initialize this repository with a ...

  2. 四、git学习之——分支管理、解决冲突

    分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇宙合并 ...

  3. Git远程和分支管理

    一.远程       Git是分布式版本控制系统,最重要的优点就是远程仓库托管代码.不用自己搭建一个服务器,在github上面注册一个账户就可免费获取远程仓库.      首先需要先在github上面 ...

  4. Git如何进行分支管理?

    Git如何进行分支管理?     1.创建分支     创建分支很简单:git branch <分支名>     2.切换分支     git checkout <分支名>   ...

  5. Git 远程仓库分支管理

    目录 目录 速查表 关联远程代码仓库 克隆远程仓库 分支管理 创建分支 切换分支 合并分支 删除分支 解决冲突 速查表 指令 作用 git branch 查看分支 git branch newBran ...

  6. Git教程之分支管理之一

    分支在实际中有什么用呢? 你创建了一个属于你自己的分支,别人看不到,别人还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又 ...

  7. 五、git学习之——分支管理策略、Bug分支、feature分支、多人协作

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

  8. git学习笔记 --分支管理策略

    通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的comm ...

  9. Git教程之分支管理之二

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

  10. 【Git教程】Git教程之分支管理

      在前一篇文章中,主要针对Git本地仓库和远程仓库的基本操作命令进行了简要介绍,本文主要集中介绍Git的另一个主要的特点:分支管理和多人协作. 什么是分支管理   当一个任务需要多人协作完成时,每个 ...

随机推荐

  1. day01-GUI坦克大战01

    JavaGUI-坦克大战 1.Java绘图坐标体系 坐标体系介绍:下图说明了一个Java坐标体系.坐标原点位于左上角,以像素为单位.在Java坐标体系中,第一个是x坐标,表示当前位置为水平方向,距离坐 ...

  2. hadoop 文件参数配置

    准备环境(省略) 上传实验所需的压缩包 配置网络信息 修改主机名 配置域名解析 关闭防火墙与SELinux(在所有节点上执行)代码如下: systemctl disable --now firewal ...

  3. python自动化测试系列教程

    随着互联网产品更新迭代加快,Web 开发和测试的需求也越来越大.很难想象,如果阿里的双 11.京东的 618,这些庞大繁杂的系统,由工程师们一个个手动测试,将会是一个怎样费时费力.成本巨大的工程. 也 ...

  4. 中秋快乐!新鲜出炉一篇DjangoAdmin使用合集,DjangoAdmin的功能比你想象的强大!

    DjangoAdmin DjangoAdmin本身就是一套大而全的系统,官方文档中介绍了很多配置方法,但仍然有大量的骚操作是文档中没有的,所以遇到特殊需求的时候,求助文档不一定有用. 在我看来 Dja ...

  5. Java SE 代码块

    1.代码块 基本语法 [修饰符]{ 代码 }; 修饰符 可选,要写的话,也只能写 static 代码块分为两类,使用static修饰的叫静态代码块,没有static修饰的,叫普通代码块/非静态代码块 ...

  6. synchronized锁详解

    synchronized的意义 解决了Java共享内存模型带来的线程安全问题: 如:两个线程对初始值为 0 的静态变量一个做自增,一个做自减,各做 5000 次,结果是 0 吗?(针对这个问题进行分析 ...

  7. 视频结构化 AI 推理流程

    「视频结构化」是一种 AI 落地的工程化实现,目的是把 AI 模型推理流程能够一般化.它输入视频,输出结构化数据,将结果给到业务系统去形成某些行业的解决方案. 换个角度,如果你想用摄像头来实现某些智能 ...

  8. 使用NextCloud搭建私有网络云盘并支持Office文档在线预览编辑以及文件同步

    转载自:https://www.bilibili.com/read/cv16835328?spm_id_from=333.999.0.0 0x00 前言简述 描述:由于个人家里的NAS以及公司团队对私 ...

  9. k8s中安装rabbitmq集群

    官方文档地址:https://www.rabbitmq.com/kubernetes/operator/quickstart-operator.html 要求 1.k8s版本要1.18及其以上 2.能 ...

  10. frps服务端与nginx可共用443端口

    转载自: https://www.ioiox.com/archives/78.html frps服务器上的nginx frps.ini配置 由于nginx占用80/443端口,frps.ini中的 v ...