Git 实战代码分支管理 | Git Flow 策略
简介
在团队协作开发中,版本管理工具尤为重要,它可以帮助团队很好地进行代码的共享、回滚等操作,比较流行的版本管理工具有: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 策略的更多相关文章
- python使用git进行版本控制-分支管理
1.远程克隆 最好的方式是先创建远程库,然后,从远程库克隆: 首先在github上创建一个新的仓库,名字叫gitskills 我们勾选Initialize this repository with a ...
- 四、git学习之——分支管理、解决冲突
分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇宙合并 ...
- Git远程和分支管理
一.远程 Git是分布式版本控制系统,最重要的优点就是远程仓库托管代码.不用自己搭建一个服务器,在github上面注册一个账户就可免费获取远程仓库. 首先需要先在github上面 ...
- Git如何进行分支管理?
Git如何进行分支管理? 1.创建分支 创建分支很简单:git branch <分支名> 2.切换分支 git checkout <分支名> ...
- Git 远程仓库分支管理
目录 目录 速查表 关联远程代码仓库 克隆远程仓库 分支管理 创建分支 切换分支 合并分支 删除分支 解决冲突 速查表 指令 作用 git branch 查看分支 git branch newBran ...
- Git教程之分支管理之一
分支在实际中有什么用呢? 你创建了一个属于你自己的分支,别人看不到,别人还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又 ...
- 五、git学习之——分支管理策略、Bug分支、feature分支、多人协作
一.分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生 ...
- git学习笔记 --分支管理策略
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的comm ...
- Git教程之分支管理之二
分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息.如果要强制禁用Fast forward模式,Git就会在merge时生成一个 ...
- 【Git教程】Git教程之分支管理
在前一篇文章中,主要针对Git本地仓库和远程仓库的基本操作命令进行了简要介绍,本文主要集中介绍Git的另一个主要的特点:分支管理和多人协作. 什么是分支管理 当一个任务需要多人协作完成时,每个 ...
随机推荐
- 第六十二篇:Vue的双向绑定与按键修饰符
好家伙,依旧是vue的基础 1.按键修饰符 假设我们在一个<input>框中输入了12345,我们希望按一下"Esc" 然后删除所有前面输入的内容,这时候,我们会用到按 ...
- 04_Linux基础-.&..-cat-tac-重定向-EOF-Shell-more-ps-less-head-tail-sed-grep-which-whereis-PATH-bash-usr-locate-find
04_Linux基础-.&..-cat-tac->&>>-EOF-Shell-more-ps-less-head-tail-sed-grep-which-wherei ...
- SDIO移植
1.拷贝 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Utilities\STM32_EVAL\STM324x7I_EVAL 目录下的stm324x7i_eval_sdio_ ...
- 【ASP.NET Core】在Blazor中获取 HTTP 上下文信息
今天咱们来扯一下 Blazor 应用程序怎么访问 HttpContext.其实这句话有坑,为了避免大伙伴们掉茅坑,老周直接说明:Blazor 是不能访问 HttpContext 的.哪怕你在服务容器中 ...
- kingbaseES V8R6集群备份恢复案例之---备库作为repo主机执行物理备份
案例说明: 此案例是在KingbaseES V8R6集群环境下,当主库磁盘空间不足时,执行sys_rman备份,将集群的备库节点作为repo主机,执行备份,并将备份存储在备库的磁盘空间. 集群架构 ...
- C#/VB.NET 在Word文档中插入分页符
分页符是分页的一种符号,上一页结束以及下一页开始的位置.通查用于在指定位置强制分页.本文将分为两部分来介绍如何在Word文档中插入分页符.并附上C#/VB.NET以供参考,详情请阅读以下内容. 在特定 ...
- 《吐血整理》高级系列教程-吃透Fiddler抓包教程(22)-如何使用Fiddler生成Jmeter脚本-下篇
1.简介 今天这篇文章其实和上一篇差不多也是利用一个fiddler的插件进行Jmeter脚本的导出,开始宏哥想要合在一起写一篇文章,可是结果实践的时候,两个插件还是有区别的,因此为了不绕晕小伙伴或者童 ...
- 使用django_registration框架实现用户的注册与激活
1.前言 本节内容是在以下环境中实现的. python version: 3.7 Django version: 3.1.1 Django-registration version: 3.1.1 如版 ...
- 15. 第十四篇 安装CoreDNS
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483850&idx=1&sn=4bfdb26f ...
- Traefik 2.0 实现自动化 HTTPS
文章转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247484457&idx=1&sn=35112e98 ...