首页 > 其他分享 >Git 代码分支管理 | 京东云技术团队

Git 代码分支管理 | 京东云技术团队

时间:2023-05-17 11:33:04浏览次数:27  
标签:Git 代码 合并 feature Dev Branch Release 京东 分支

作者:京东科技 周新智

一、引言

近日,IoT 研发团队加入了不少新同学,对 git 分支的命名和管理方式有些许的模糊,分支的命名规范以及管理方式对项目的版本发布至关重要,为了解决实际开发过程中版本发布时代码管理混乱、冲突等比较头疼的问题,我们将在文中阐述如何更好的管理代码分支。


二、总览

Git 代码分支管理 | 京东云技术团队_京东云

从上图可以看到主要包含下面几个分支:

• master: 主分支,也称为线上分支,主要用来版本发布。

• dev:日常开发分支,该分支正常保存了开发的最新代码。

• release:release 分支可以认为是 master 分支的测试版。比如说某个新增功能开发完成、线上问题紧急修复完成,那么就将 feature/hotfix 分支合并到 release 分支,到了发布日期就合并到 master 分支,进行版本发布。

• feature:具体的功能开发分支。

• hotfix:线上 bug 修复分支。


三、主分支

主分支包括Master Branch、Release Branch、Dev Branch 三个分支:

1、Master Branch

用来进行版本发布,也就是当前线上运行的代码分支

2、Release Branch

Release Branch 在我看来就是 Pre-Master。Release Branch 从 Master Branch 检出,最终会合并到Master Branch,合并后 Master Branch上就是可以发布的代码了。

所有新增功能的开发分支都是从 Dev Branch 检出作为本地分支,以 feature-功能名-姓名首字母简拼,当功能开发完毕的时候,将 feature Branch 合并到 Dev Branch,在测试或预生产环境进行部署,测试通过后,再将 feature Branch 合并到 Release Branch。

如果出现线上问题需要紧急修复,则从 Release Branch 检出作为本地分支,以 hotfix-功能名-姓名首字母简拼, 当问题修复完毕的时候,将hotfix Branch合并到 Dev Branch,在测试环境进行部署,测试通过后,再将 hotfix Branch 合并到 Release Branch,在预发环境再次验证。

待所有的测试和准备工作做完之后,我们就可以将 release 分支合并到 master 分支上,并择机进行线上发布。

3、Dev Branch

dev 就是我们的日常开发分支。


四、辅助分支

1、Feature分支

feature 分支用来开发具体的功能,一般 fork 自 Dev 分支,以 feature-功能名-姓名首字母简拼 进行命名,最终合并到 Dev 、Release分支。比如我们要在下一个版本增加功能1、功能2、功能3。那么我们就可以起三个feature 分支:feature-1-zxz,feature-2-qxh,feature-3-sq。(feature 分支命名最好能够自解释,1、2、3 这并不是一种好的命名)随着我们开发,功能1和功能2都被完成了,而功能3因为某些原因完成不了,那么最终 feature-1-zxz 和 feature-2-qxh 分支将被合并到 Dev 分支,而 feature-3-sq 分支将延期继续进行本地开发工作,功能1和功能2测试完没有问题后,将 feature1 和 feature2 分支将被合并到 Release 分支,最终将 Release 分支合并到 Master 分支。

2、Hotfix 分支

顾名思义,hotfix 分支用来修复线上 bug。当线上代码出现 bug 时,我们基于 Release 分支开一个 hotfix 分支,以 hotfix-功能名-姓名首字母简拼(例如:hotfix-model-base-zxz)修复 bug 之后再将 hotfix 分支合并到 Release 分支,同时 Dev 分支作为最新最全的代码分支,hotfix 分支也需要合并到 Dev 分支上去,同时在不同分支对应的不同环境进行bug回归验证,最终将 Release 分支合并到 Master 分支,进行线上发布即可。


五、注意事项

1、 Feature 分支、Hotfix 分支合并到 Dev 分支,测试通过后,需再合并到 Release 分支,这时候就要求代码合并时需清楚的知道此代码是否已经经过验证。

2、 Dev、Release、Master分支的同步

Release 分支合并到 Master 分支后,若Dev分支无正在测试的功能,建议定时将 Dev、Release、Master 分支进行代码同步。

通过以上分支管理,我们就可以轻松做到:团队成员之间功能并行开发、功能选择性发布、版本发布、线上问题紧急功能开发、紧急问题修复等。

标签:Git,代码,合并,feature,Dev,Branch,Release,京东,分支
From: https://blog.51cto.com/u_15714439/6289294

相关文章

  • 楠姐技术漫话:图计算的那些事 | 京东云技术团队
    不知道大家在平时的工作中有没有听说过“图计算”这个名词但大家一定在各工作汇报,技术分享中听说过“智能化”,“人工智能”这样的字眼而我们今天要唠的这个图计算就是人工智能领域内近几年炙手可热的前沿宠儿也是我们风控反欺诈中常用的“大杀器”在了解图计算之前首先得了解什么是......
  • 其实,领域认知比会写代码更重要!
    大家好,我是飘渺!按照惯例,首先声明,以下内容皆为个人观点。但,无论你是经验丰富的专业人士还是刚刚入行的小白,都希望下面这些见解能够给你带来一些帮助。我从2022年年中就想写这篇文章了,但很多观点我一时无法全部记住。所以在过去的一年里,我一直在收集想法并把它们记录下来,现在我有了足......
  • 在gitlab上,把旧项目的分支代码,转移到新项目里,Git命令语句
    1clone老项目#gitclonegit@xxxx/demo.git2进入到demo目录#cddemo3移除老项目的地址替换成新项目#gitremoteset-url--pushorigingit@xxx/account.git4将镜像推到远程#gitpush-uoriginmaster ......
  • Git项目管理并上传至Gitee
    Git项目管理并上传至GiteeGit-官网下载一、初始化本地git仓库gitinitgitconfig--globaluser.name"Mr.郭"gitconfig--globaluser.email"[email protected]"二、修改仓库不需要上传的文件夹touch.gitignore三、查看未上传的文件gitstatus-s四、添加文件......
  • git回滚代码
    1、未提交未提交有以下两种情况:1)已经在工作区修改了文件,但还未执行gitadd提交到暂存区。2)已经执行了gitadd提交到暂存作,但还未执行gitcommit提交本地仓库。这时候回退:gitreset--hard这样等于清空了暂存区和工作区,本地仓库回退到了最新的提交状态。2、已提交未推送......
  • 行政区划代码(使用国务院官方数据)形成树形结构数据表
    2022年中华人民共和国行政区划代码https://www.mca.gov.cn/article/sj/xzqh/1980/202304/20230400047341.shtml  下拉复制粘贴到excel,导入数据库表结构为:CREATETABLE`citynew`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`pre_id`int(11)DEFAULTNULL,`......
  • Windows的disk报错代码153和SCSI代码简要分析
    SCSI报错代码示例Windows服务器上频繁出现event上来源为disk,ID为153的事件,并且影响到了数据库业务的正常运行。点击该事件的详细信息,可以看到对应的SCSI读写请求及其状态。上文scsi的译义如下:offset29SCSISatus为00,译义为SCSISTAT_GOOD,对应SCSI端口和驱动。offset30S......
  • 楠姐技术漫话:图计算的那些事 | 京东云技术团队
    不知道大家在平时的工作中有没有听说过“图计算”这个名词但大家一定在各工作汇报,技术分享中听说过“智能化”,“人工智能”这样的字眼而我们今天要唠的这个图计算就是人工智能领域内近几年炙手可热的前沿宠儿也是我们风控反欺诈中常用的“大杀器”在了解图计算之前首先得......
  • 阿里图标 代码引入
    1.将选好的项目添加到小车内2.点上方小车图标,将图标添加到对应的小车内3.添加完成后,下载图标压缩包            4.将上图的文件引入到项目文件中,主要文件为:iconfont.css文件,图中圈起来的icon-jixie 就是引入的图标名称引入时,只需要将对应的 ......
  • 代码随想录算法训练营第8天 | ● 344.反转字符串 ● 541. 反转字符串II ● 剑指Offer
     第四章 字符串part01  今日任务  ●  344.反转字符串●  541. 反转字符串II●  剑指Offer 05.替换空格●  151.翻转字符串里的单词●  剑指Offer58-II.左旋转字符串  详细布置   344.反转字符串  建议: 本题是字符串基础题目,就是考察......