简介

在团队协作开发中,版本管理工具尤为重要,它可以帮助团队很好地进行代码的共享、回滚等操作,比较流行的版本管理工具有: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. 关于使用docker volume挂载的注意事项

    Content 在用Docker进行持久化的存储的时候,有两种方式: 使用数据卷(volume) -v 容器绝对路径 或者 -v 已经创建的volume名称:容器绝对路径 2. 使用挂载点(共享宿主目 ...

  2. 【设计模式】Java设计模式 - 观察者模式

    [设计模式]Java设计模式 - 观察者模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 @一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习成长 ...

  3. java基础学习:java中的反射

    一.什么是java反射 什么是 java 的反射? 说到反射,写这篇文章时,我突然想到了人的"反省",反省是什么?吾一日三省吾身,一般就是反思自身,今天做了哪些对或错的事情. ja ...

  4. git reset总结

    git reset git 的重置操作 有三种模式:hard.mixed(默认).soft 1. hard 用法 hard会重置stage区和工作区,和移动代码库上HEAD 和branch的指针所指向 ...

  5. Nginx几种负载均衡方式介绍

    Nginx几种负载均衡方式介绍 前言 负载均衡就是Nginx将请求分摊到不同的服务器中,保证服务的可用性,缓解服务压力,保证服务的响应速度,即使某一个应用服务不可用,也可以保证业务的正常进行,并且方便 ...

  6. [Python]-torchvision.transforms模块-图像预处理

    PyTorch框架中常用torchvision模块来辅助计算机视觉算法的搭建,transforms用于图像的预处理. from torchvision import transforms 预处理操作集 ...

  7. MySQL8配置文件

  8. Elasticsearch: rollover API

    rollover使您可以根据索引大小,文档数或使用期限自动过渡到新索引. 当rollover触发后,将创建新索引,写别名(write alias)将更新为指向新索引,所有后续更新都将写入新索引. 对于 ...

  9. Elasticsearch:单节点数据迁移

    Elasticsearch数据迁移:windows单节点迁移到windows 将源数据中的ES安装目录下的data/nodes目录整体拷贝到目标ES的对应目录下 迁移前请备份:迁移后需要重启ES: E ...

  10. Kibana: 运用Data Visualizer来分析CSV数据