首页 > 其他分享 >Git 开发规范

Git 开发规范

时间:2024-08-04 23:53:25浏览次数:14  
标签:Git develop flow 规范 feature 开发 master git 分支

文章目录

Git 开发规范

分支管理策略

git flow

img

Vincent Driessen 于2010年提出的分支模型,可以说是最早、最全面的分支管理策略了,后续出现的分支管理策略基本都是基于 git flow 进行修改的。这里先要明确几个基本概念

  1. master/main:主分支,最终所有需要发布的有效代码都会合并到该分支
  2. develop:开发分支,所有开发内容都是基于 develop 分支创建 feature 分支
  3. feature:特性分支,也就是每个版本开发要写的代码
  4. release:发布分支,当需要发布版本时,develop 不能直接合并到 master 分支,需要通过 release 分支进行必要测试验证后,再将 relase 分别合并到 master 和 develop 分支。
  5. hotfix:热修复分支,线上出了紧急 bug,需要专门分支处理

从上图可以看出,使用 git flow 开发步骤还是比较多的:

  1. 从 develop 创建一个 feature 分支
  2. 开发并自测完 feature 分支,将其合并到 develop 分支
  3. 从 develop 分支创建 release 分支,进行集成测试
  4. 将 release 分支合并到 master 和 develop 分支

github flow

省略去了大部分分支类型,仅保留了 master 和 feature 分支。

暂时无法在飞书文档外展示此内容

gitlab flow

引入了生产分支和环境分支,总体上与 github flow 区别不大。

环境分支很好理解,即不同环境使用不同的环境分支。

生产分支则类似于 release 分支,但是是从 master 拉取出来,用来代表生产部署的代码版本。

trunk-based development

在这里插入图片描述

与 github flow 差别很大,认为应该在 master(主干)上开发,使用 release 分支进行发布,理由是短期的开发任务不需要整的那么麻烦,测试什么的在提交到 master 之前做好就行了。

基本上就等同于单分支开发了,用的比较少。

总结

其实分支模型大差不差,git flow 最全面, github flow 最简化。

基本上,你可以使用 git flow 满足任何开发团队的节奏,也可以在此基础上去掉一些自己不需要使用的分支。github flow 之所以能这么简单,主要是因为 feature 分支开发周期较长,且有健全的持续集成、持续部署工具保证 feature 分支合并到 master 后不会影响 master 的可用性,要求不可谓不高。

其实,总结下来,一个健全的开发团队的分支管理应该满足以下条件:

  1. 有一个永远有效、能反应生产部署代码的分支,可以随时发布
  2. 有一个能持续集成、体现开发进度的分支,能够帮助提早发现集成问题

Commit Message

很多开发的 git commit message 写的是一团糟,要么是流水账,要么货不对板。

commit message 没有绝对的好坏,但是有相对的优劣,一个团队要遵守一致的填写规范。一个好的 commit message 应该要尽可能简洁、保留关键信息。

我们可以先将 commit 分为几类:

  1. 代码重构:refactor
  2. 功能开发:feat
  3. 问题修复:fix
  4. 文件变更:doc

先用分类来概括提交内容,再用一段简短的文字来描述,如:

feat: 考试试卷CRUD

fix: 试卷完成功能失败问题

refactor: 使用令牌桶替换默认限流算法

标签:Git,develop,flow,规范,feature,开发,master,git,分支
From: https://blog.csdn.net/code_oppa/article/details/140914479

相关文章

  • 前端开发中最炙手可热的当红辣子鸡 Vue 3 简介及入门实例
    前言之前已经学习过来HTML、CSS以及JavaScript的相关知识,也算是基本了解了关于这前端三件套的一些基本用法。今天就来了解下,当前前端开发中最炙手可热的当红辣子鸡-Vue。本文主要介绍Vue的一些入门知识和最经典的Vue入门HelloWorld程序,如果你想了解的是更高......
  • 【Unity】3D功能开发入门系列(四)
    Unity3D功能开发入门系列(四)一、组件的访问(一)组件的调用(二)组件的参数(三)引用别的组件(四)引用脚本组件(五)消息调用二、物体的访问(一)获取物体(二)父子物体(三)物体的操作(四)练习:俄罗斯方块三、资源的访问(一)资源的使用(二)资源数组(三)练习:三色球四、定时调用(一)定时调用(二)定时与线程(三......
  • 学生管理系统之数据库设计与开发
    学生管理系统之数据库设计与开发使用SQL创建表格QT上写逻辑创建一个类<......
  • 英语.Net多语言开发中的问题
    问题与现象多语言开发是一件成本很高的事情。很多公司会退而求其次选择只开发英文版本的软件分发到不同国家,但这里仍存在不同问题。我们就遇到了这样的问题,参考下面的代码。CultureInfo culture;double number =1.5;culture = CultureInfo.CreateSpecificCulture(......
  • git基本用法
    Git是一种版本控制系统,它用于跟踪文件的更改并协调多个开发者之间的代码共享。Git的基本概念包括:仓库(repository):用于存储文件和文件夹的集合。仓库可以是本地仓库(存放在开发者本地计算机上)或远程仓库(存放在另一个地方,如Github)。分支(branch):分支是仓库中的一个可独立进行工......
  • 【ESP01开发实例】-ESP-01驱动DS1307/DS1321实时时钟模块
    ESP-01驱动DS1307/DS1321实时时钟模块文章目录ESP-01驱动DS1307/DS1321实时时钟模块1、DS1307/DS1321介绍2、硬件准备与接线3、代码实现本文将介绍如何使用ESP8266(ESP-01)模块、DS3231RTC或DS1307RTC和16×2LCD构建实时时钟。时间和日期显示在......
  • 【ESP01开发实例】-ESP-01驱动DHT11和DH22传感器
    ESP-01驱动DHT11和DH22传感器文章目录ESP-01驱动DHT11和DH22传感器1、DHT11/DHT22传感器介绍2、LCD1602介绍3、硬件准备与接线4、代码实现本主题介绍如何使用DHT11和DHT22相对湿度和温度传感器与ESP8266ESP-01Wi-Fi模块,将相对湿度和温度的测量值显......
  • 【ESP01开发实例】-ESP-01驱动LCD1602 I2C
    ESP-01驱动LCD1602I2C文章目录ESP-01驱动LCD1602I2C1、LCD1602介绍2、硬件准备与接线3、代码实现ESP8266ESP-01模块只有8个引脚,其中4个可用作I/O(输入/输出)引脚(GPIO0、GPIO2、RX和TX),这个I/O引脚数量不足以运行16个引脚。×2LCD屏,至少需要......
  • 陀螺仪LSM6DSOW开发(7)----融合磁力计进行姿态解算
    陀螺仪LSM6DSOW开发.7--融合磁力计进行姿态解算概述视频教学样品申请源码下载硬件准备DataLogFusion磁力计校准过程初始化磁力计MFX_Arithmetic_Init卡尔曼滤波算法演示概述MotionFX库包含用于校准陀螺仪、加速度计和磁力计传感器的例程。将磁力计的数据与加速度计......
  • 2--Web前端开发-JavaScript
    引入方式1、内部脚本:将JS代码定义在HTML页面中JavaScript代码必须位于<script></script>标签之间在HTML文档中,可以在任意地方,放置任意数量的<script>一般会把脚本置于<body>元素的底部,可以改善显示速度<script>alert("hellojavascript");</script>可放在代码中任意位......