首页 > 其他分享 >Git 代码分支管理

Git 代码分支管理

时间:2023-07-06 23:01:21浏览次数:51  
标签:Git 代码 合并 feature Dev Branch Release 分支

一、引言

近日,IoT 研发团队加入了不少新同学,对 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 分支进行代码同步。

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

 

 

原文地址:https://www.cnblogs.com/jingdongkeji/p/17409570.html

标签:Git,代码,合并,feature,Dev,Branch,Release,分支
From: https://www.cnblogs.com/songjuntao/p/17533576.html

相关文章

  • SRGAN图像超分重建算法Python实现(含数据集代码)
    摘要:本文介绍深度学习的SRGAN图像超分重建算法,使用Python以及Pytorch框架实现,包含完整训练、测试代码,以及训练数据集文件。博文介绍图像超分算法的原理,包括生成对抗网络和SRGAN模型原理和实现的代码,同时结合具体内容进行解释说明,完整代码资源文件请转至文末的下载链接。完整......
  • 【WALT】scale_exec_time() 代码详解
    @目录【WALT】scale_exec_time()代码详解代码展示代码逻辑:为什么归一化?⑴ 将CPUcycles转换为CPU当前频率⑵ 归一化delta【WALT】scale_exec_time()代码详解代码版本:Linux4.9android-msm-crosshatch-4.9-android12代码展示staticinlineu64scale_exec_time(u64delt......
  • 基于Jenkins+Gitee实现SpringBoot项目自动化部署(Docker版)
    前言:上一篇笔记:基于Jenkins+Gitee实现SpringBoot项目自动化部署(非Docker版)。本篇笔记介绍一下Docker版本的Jenkins如何实现项目自动化部署。本案例基于Linux CentOS7服务器,防火墙开放8080端口(Jenkins使用),80端口(项目使用),云服务器直接在控制台配置安全规则即可。1......
  • 嵌入式宝藏级别的C代码
    在嵌入式开发中,有一些常用的C语言代码片段被认为是宝藏级别的,因为它们在处理底层硬件和优化性能方面非常有用。以下是一些常见的宝藏级别的C语言代码和解释:1.位操作代码//设置某个位为1#defineSET_BIT(reg,bit)((reg)|=(1<<(bit)))//清除某个位为0#defineCLEAR_BIT(re......
  • poi-tl 将html代码渲染到word中
    引入依赖<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.15.3</version></dependency><dependency><groupId>io.github.draco1023</groupId>......
  • Git Merge Failed Merging is not possible because you have unmerged files. hint:
    ​ 这个错误提示意味着在进行gitmerge操作时,存在未解决的冲突(unmergedfiles)。Git无法自动合并这些冲突,因此您需要手动解决冲突并进行提交。要解决这个问题,您可以按照以下步骤进行操作:首先,运行gitstatus命令来查看未解决的冲突文件。您会看到类似下面的提示:Unmerged......
  • 如何在 Windows10 Professional 服务器上搭建自己的 Git 服务器。
    一、简介以前,在别家的公司,一般早就把源代码管理工具搭建好了,很少有机会自己搭建一套。最近,公司也许要把现在不少的源码进行管理,于是我打算自己搭建源代码管理服务器。说起源代码管理,当然有很多中解决方案,我个人偏向搭建一个Git服务器。毕竟这个自己用的比较多,也熟悉。......
  • Git Merge Failed Merging is not possible because you have unmerged files. hint:
     这个错误提示意味着在进行gitmerge操作时,存在未解决的冲突(unmergedfiles)。Git无法自动合并这些冲突,因此您需要手动解决冲突并进行提交。要解决这个问题,您可以按照以下步骤进行操作:首先,运行gitstatus命令来查看未解决的冲突文件。您会看到类似下面的提示:Unmergedpaths:(use......
  • git提示“warning: LF will be replaced by CRLF”(转载)
    一、发现问题windows平台下使用gitadd,gitdeploy文件时经常出现“warning:LFwillbereplacedbyCRLF”的提示。网上很多解决办法提到:设置core.autocrlf=false,windows也用LF换行。二、分析问题格式化与多余的空白字符,特别是在跨平台情况下,有时候是一个令人发指的问题。......
  • 向源代码管理注册此项目时出错。建议不要对此项目进行任何更改。
    https://blog.csdn.net/wj2014/article/details/78287239CCHR项目是从SVN上签到VSS的,项目打开提示如下错误。需要打开.csproj项目文件将含有关于SVN的配置节去掉即可。    ......