【软件开发规范篇】Git分支使用规范

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产生了写一个博客专栏想法,介绍当前互联网企业JAVA项目开发如何快速入门。

本文收录于《30天企业JAVA项目开发实战入门》专栏,该专栏内容以当前互联网软件企业中的项目实战为线索,介绍企业JAVA项目开发中涉及到的开发流程、技术、工具、规范要求等等。帮助想从事JAVA开发的大学生或新人,更快的、更好的入门JAVA后端开发工作。

文章目录

    • 一、前言
    • 二、分支命名管理
    • 三、分支操作流程
    • 四、总结

一、前言

本文介绍一下软件开发过程中,Git分支使用规范。

在团队开发中,遵循一个合理、清晰的 Git 使用流程,是非常重要的。否则,各种不清晰的分支结构,后续产品迭代或维护都会让人很头疼。

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。

有人把 Git 的分支模型称为它的“必杀技特性”,因为基于指针的实现使其足够轻量。

Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次,但仍要遵循一定的规范。

Git工作流程图:
在这里插入图片描述

二、分支命名管理

开发过程主要存在以下分支:

  • master
  • dev
  • hotfix-[问题名称 | bug编号]
  • feature-yyyyMMdd_需求名称
  • bugfix-[bug编号]
  • refactor-[重构名称]

master

- master主分支始终保持稳定的可发布版本,所以一般不允许直接在该分支上修改代码;
- 只有项目组主程才拥有master主分支的管理权限(例如其他分支合并到master必须由主程操作);

dev

- dev为开发分支,要能保证能运行, 不能编译错误;
- 始终保持最新完成以及bug修复后的代码;
- 一般开发新功能时,feature 分支都是基于 develop分支下创建的;

hotfix

- 建议格式为hotfix-[问题名称 | bug编号];
- 线上出现紧急问题时,需要及时修复,以 master 分支为基线,创建 hotfix 分支,修复完成后,需要合并到master 分支和 dev 分支;

feature

- 建议格式为feature_yyyyMMdd_需求名;
- 开发新功能时,以dev分支为基础创建 feature 分支;
- 如果有codereview, 应由一人审核后合并至dev;

bugfix

- 建议格式为bugfix-[bug编号];
- 从dev分支创建,用于修改测试提出的bug,修复以后,在远程发起向dev分支的合并请求,合并以后删除该分支;

refactor

- 建议格式为refactor-[重构名称];
- 从dev分支创建,用于代码的**重大规模重构**(小规模重构创建feature分支即可);
- 重构以后,必须经过严格测试通过,才能向dev分支合并;

三、分支操作流程

  1. 需求分类(中长期需求, 跨版本需求等);
  2. 由专人按统一的命名格式, 切分支;
  3. 各人拉取各自分支开发;
  4. 开发完后, 提交代码
    (1)若有codeview, 由专人浏览后合并到dev;
    (2)若没有, 则自行同步dev上的最新代码到本分支, 然后合并本分支代码到dev(规避代码覆盖问题);
  5. 分支开发的时间过久, 则需要定时拉取dev分支到自己业务分支上, 减少后续解决冲突的工作量;
  6. 如果测试过程中存在 bug 需要修复,则由开发者在dev上拉取bugfix分支修改bug,完成后合并到dev分
    支上;
  7. dev分支的代码测试没有问题, 合并到master, master分支打好tag或做好备份, 通知运维准备上线;
  8. 若开发中突遇紧急bug, 需从master上拉取最新代码到本地称为hotfix分支, 改完测试后合并到master分支,通知运维发布。

四、总结

以上规范不一定是必须的,一般是根据实际情况来的,总结如下:

  • 自己的分支一定要自测,切记不要提交后,影响到其他代码,更别说别人拉下代码还报错这种低级错误;
  • 本地分支要做到勤提交,分小功能提交,一次提交一大堆各种功能的做法也要杜绝;
  • 每天第一件事就是更新 develop 分支内容到本地分支,避免大规模 merge,太容易出错了;
  • 迭代新版本时,一定要保证当前开发分支和线上分支一样;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考之零碎片段记录(二十七)+复习巩固(十三、十四)

学习 1. 案例题 涉及到更新的。肯能会是数据流的终点E, P, D 数据流转。可能是 P->EP->D(数据更新)P->P(信息处理)D->P(提取数据信息) 2. 案例2 补充关系图时会提示不增加新的实体。则增加关联关系 3. 案例3 用例图 extend用于拓展,当一个用例…

磁盘未格式化,数据恢复大揭秘

一、磁盘未格式化现象概述 在日常使用电脑的过程中,我们有时会遇到磁盘未格式化的提示,这意味着我们的磁盘突然间变得不可识别,所有的数据和文件都似乎消失了。这种情况常常发生在外接硬盘、U盘等存储设备上,给我们的工作和生活带…

【AIGC调研系列】Gitlab的Duo Chat与其他辅助编程助手相比的优缺点

GitLab的Duo Chat作为一款AI编程助手,与其他辅助编程助手相比具有一系列的优势和潜在的缺点。 优点方面: 自动化测试与智能代码建议:Duo Chat能够自动生成测试代码,帮助团队提前发现潜在的程序错误,提高软件质量。同…

【Python】爬虫-基础入门

目录 一、什么是爬虫 二、爬虫的主要用途 三、学会爬虫需要掌握的技能 四、爬虫使用的语言 五、编写爬虫需要的库,以python为例 六、爬虫示例-python 示例一 示例二 示例三 一、什么是爬虫 爬虫,又称网络爬虫或网页爬虫,是一种用来自…

企微魔盒V15.6独立版源码+搭建环境教程

企微魔盒V15.6修复已知问题。 搭建教程: 系统环境:CentOS、 运行环境:宝塔 Linux 网站环境:Nginx 1.15.10 MySQL 5.6.46 PHP-7.1-7.3 常见插件:fileinfo ; redis

RAG 的是与非、Rewrite 和 Rerank

有时候,我觉得人类还真是种擅长画地为牢的动物,因为突然发现,当人们以文化/理念的名义形成团体/圈子的时候,其结局都不可避免地走向了筛选和区分的道路。或许,大家都不约而同地笃信,在成年人的世界里,那条不成文的社交潜规则——“只筛选不教育,只选择不改变”。与千百…

16.Blender 基础渲染工作流程及安装ACES

安装插件和菜单栏设置 在菜单栏的编辑里打开偏好设置 里面的插件界面 搜索node 给第三个打勾 点击安装,导入cat插件 安装完后,一定要打勾,选择上cat插件 这样N窗口才会显示MMD选项 导入场景 点击打开 把输出模式的帧率改为30fps 按…

C#装箱拆箱是怎么回事

代码如下: int i 123; object o i; // Boxing int j (int)o; // Unboxing 缺点: 当装箱和拆箱发生时,该技术允许将值类型视为对象。虽然非常有益,但它们会带来性能开销。值类型和引用类型之间的转换过多可能会导致垃圾回收…

Java学习1:java入门

java入门 1.介绍Java java——sun公司——被甲骨文收购 一开始叫Oak,后期改名为java; java之父詹姆斯高斯林 企业级应用开发 JavaSE JavaEE JavaME 高级编程语言 2.搭建开发环境 JDK8,JDK11,JDK17————>LTS长期支持版 ps:在…

效率工具RunFlow完全手册之局域网传输篇

本篇将向您介绍如何使用RunFlow在局域网(又称内网)内传输文件,同步剪贴板,无论是家庭局域网还是办公室局域网,都能轻松搞定文件传输以及剪贴板同步,如果您还没有安装RunFlow,可点这里去下载。 为…

【2024-4-28-001】我遇到的CMake语句

2024年4月28日,周日下午 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE})这段语法是用于设置 CMake 构建过程中生成的可执行文件(运行时文件)的输出目录。 让我逐步解释它: set: 这是 CMake …

有效三角形的个数 ---- 双指针

题目链接 题目: 分析: 这道题的意思就是将数组的元素, 拿出三个数, 能构成三角形就是有效的判断是否能构成三角形的条件: 两边之和大于第三边, 我们只需找到三个数中最小的两个数之和是否大于第三边, 大于则可以构成三角形解法一: 暴力解法, 即找到所有的三元组, 并挨个判断,…

X86与FPGA相结合,基于PIB的AI开发——人体姿态识别

人体姿态估计是计算机视觉领域中用于理解和分析人类行为的一个关键技术。它主要涉及到检测和识别图像或视频中人体的各个关键点,并预测这些关键点之间的空间关系,从而构建出人体的骨架模型。 本文将介绍基于PIB板的人体姿态估计案例。这是一个交互式的实…

携手知名学府 平安人寿升级推出“财富康养保险规划师”培养项目 赋能代理人队伍高质转型

为响应监管要求、顺应行业趋势、满足市场需求,近日,平安人寿携手清华大学、北京大学两学府,升级推出 “平安人寿财富康养保险规划师”培养项目,为保险代理人提供兼具独特性、权威性与实战性的培训课程及能力评价,助力队伍专业能力、职业素养和社会形象提升,助推行业高质量发展。…

Kotlin语法入门-数据类、伴生类、枚举类(9)

Kotlin语法入门-数据类、伴生类、枚举类(9) 文章目录 Kotlin语法入门-数据类、伴生类、枚举类(9)九、数据类、伴生类、枚举类1、数据类2、伴生类2.1、定义伴生类2.2、JvmStatic注解2.3、const关键字 3、枚举类3.1、定义3.2、传参3.3、继承与实现 九、数据类、伴生类、枚举类 1…

适用于Windows和Mac的十大误删除数据恢复软件

数据恢复是从辅助存储或可移动文件中找回丢失、删除或损坏的数据的过程。数据丢失的原因有很多。因此,有必要恢复已删除的数据。有各种可用的软件工具,使用户能够恢复任何类型的已删除数据。但是,任何数据恢复都有四个主要阶段。他们正在修复…

【C 数据结构】普通树

文章目录 【 1. 树的双亲表示法 】【 2. 树的孩子表示法 】【 3. 树的孩子兄弟表示法 】 前面学了二叉树的存储结构,本节学习如何存储具有普通树结构的数据。例如下图所示为普通树存储结构。 通常,存储具有普通树结构数据的方法有 3 种: 双…

Linux红帽(RHCE)认证学习笔记-(1)Linux 文件管理

Linux 文件管理 1. Linux下的目录结构 / 是Linux里的根目录 Linux的一级目录 /boot :存放的是系统的启动配置⽂件和内核⽂件/dev :存放的是Linux的设备⽂件/etc:存放的是Linux下的配置文件/home:存放普通用户的家目录/media&am…

学习java第五十三天

Spring器中的bean可以分为5个范围: singleton:这种bean范围是默认的,这种范围确保不管接受多少请求,每个容器中只有一个bean的实例,单例模式; prototype:为每一个bean提供一个实例&#xff1b…

Ubuntu 系统使用 root 用户登录

Ubuntu 系统在安装过程中默认不设置 root 帐户和密码。如有需要,可在设置中开启允许 root 用户登录。具体操作步骤如下: 1.使用 ubuntu 帐户登录服务器 2.执行以下命令,设置 root 密码 sudo passwd root 3.输入 root 的密码,按…