GIT版本管理规范

news/2024/10/6 8:26:49

版本管理规范

文档编写中

1. Git版本管理

1.1 分支命名

先来一张典中典

分支生命周期

以上生命周期仅作参考,不同开发团队可能有不同的规范,可自行灵活定义。

例如我们团队在开发时,至少需要保证以下流程:

develop 分支和 hotfix 分支,必须从 master 分支检出

由 develop 分支合并到 test 分支

功能测试无误后,由 test 分支合并到 release 分支

UAT测试通过后,由 release 分支合并到 master分支

对于工作量小的功能开发(工时小于1天),可以直接在devolop 分支进行开发,否则由 develop 分支检出 feature 分支进行开发,开发完后合并到develop 分支

1.1.1 dev 分支

develop 为开发环境分支,始终保持最新完成以及bug修复后的代码,用于前后端联调。一般开发的新功能时,feature分支都是基于develop分支创建的。

1.1.2 feature 分支

开发新功能时,以develop为基础创建feature分支。

分支命名时以 feature/ 开头,后面可以加上开发的功能模块, 命名示例:feature/user_module、feature/cart_module

1.1.3 hotfix 分支

线上出现紧急问题时,需要及时修复,以master分支为基线,创建hotfix分支。修复完成后,需要合并到 master 分支和 develop 分支。

分支命名以hotfix/ 开头的为修复分支,它的命名规则与 feature 分支类似

1.1.4 release分支

release 为预上线分支(预发布分支),UAT测试阶段使用。一般由 test 或 hotfix 分支合并,不建议直接在 release 分支上直接修改代码。

细分分支: Pre-SIT SIT UAT PROD 环境所有hotfix和feature首先上到Pre-SIT/SIT,cherry-pick到其他分支

1.2 Commit提交

在编写文档时,应遵循正式、简洁且易于理解的语言规范。文档不仅应具备专业性和准确性,还应确保内容清晰明了。

feat: 新增功能

fix: 修复bug

docs: 仅文档更改

style: 不影响代码含义的更改(空白、格式设置、缺失 分号等)

refactor: 既不修复bug也不添加特性的代码更改

perf: 改进性能的代码更改

test: 添加缺少的测试或更正现有测试

chore: 对构建过程或辅助工具和库(如文档)的更改

除此之外,还有一些常用的类型:

delete:删除功能或文件

modify:修改功能

build:改变构建流程,新增依赖库、工具等(例如webpack、gulp、npm修改)

test:测试用例的新增、修改

ci:自动化流程配置修改

revert:回滚到上一个版本

单次提交注意事项

提交问题必须为同一类别

提交问题不要超过3个

提交的commit发现不符合规范,git commit --amend -m "新的提交信息"或 git reset --hard HEAD 重新提交一次

2. .gitignore

.gitignore是一份用于忽略不必提交的文件的列表,项目中可以根据实际需求统一.gitignore文件,减少不必要的文件提交和冲突,净化代码库环境。

下面提供一份通用配置,可自取:

Bash
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/

### VS Code ###
.vscode/

# Log file
*.log
/logs*

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar
*.cmd

3. README.md

在Git中,README.md 文件通常用来描述项目的概要、安装和使用方法、贡献指南等。它是项目的门面,帮助其他开发者理解和使用你的项目。下面是一个典型的 README.md 文件结构示例:

Bash
# 项目名称

一句话描述项目。具体描述

## 目录

- [介绍](#介绍)
- [安装](#安装)
- [使用](#使用)
- [贡献](#贡献)
- [许可证](#许可证)
- [联系方式](#联系方式)

## 介绍

详细描述项目的背景、目的和功能。

## 安装

步骤一:克隆仓库
```bash
git clone https://github.com/username/repo-name.git

npm install # 或者 pip install -r requirements.txt

## 使用描述

描述如何使用项目,可以包括命令行指令、配置文件说明等。

## 许可证
MIT

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

基于禁忌搜索算法的TSP路径规划matlab仿真

1.程序功能描述 基于禁忌搜索算法的TSP路径规划,输出优化收敛曲线以及路线规划图。2.测试软件版本以及运行结果展示 MATLAB2022a版本运行3.核心程序for it = 1:Iterationit% 初始化本次迭代的最佳新解代价为正无穷 bestnewsol.Cost = inf;% 遍历所有动作并尝试应用它们 for …

Typora 样式

1:修改主题 可以根据 官方文档 修改主题 CSS。 配合左上角菜单 视图》开发者工具 来修改 CSS 效率更高。 2:我的主题 2.1:黑暗主题 根据自己的喜好在 night-new 主题上修改了点 https://blog.csdn.net/weixin_52023681/article/details/1202515232.2:光明主题 根据自己的喜…

基于cJSON及心知天气模块化实现获取城市气象信息(现在、未来)

用于请求心知天气的信息, 现在的信息, 未来n天的气象信息. 使用域名通过TCP连接到心知天气服务器, 采用cJSON进行解析.模块化实现, 可选择英文、中文;天数;城市;V1.0 2024年6月14日 发布于博客园目录序言功能描述运行结果示范注意!代码weather_api.hweather_api.cdemo.ccJSON.h…

pycharm配置anaconda虚拟环境

终于知道怎么给pycharm配置虚拟环境了()file——》setting 找到project:项目 点击python interpreter 点击add interpreter——》add local interpreter 选择conda envrionment(不用管右边红色的报错) 点击红色框里的文件夹形状的按钮 这里要导入的是.bat文件,一般在anac…

OpenGL:矩阵

矩阵基础知识 在具体描述如何构建模型矩阵、观察矩阵和投影矩阵之前,我们在这一节先介绍矩阵的各种基础知识(只介绍需要用到的知识)。 矩阵的基本含义 由\(m \times n\)个数\(a_{ij}(i \in [1, m], j \in [1, n])\)组成的数列被称为m行n列的矩阵\(A\)(一般用大写数字表示矩…

跟思兼学Klipper(32):修复 CrealityOS IP 地址经常改变的问题

前言 原创文章,转载引用务必著名链接,水平有限,如有疏漏,欢迎指正交流。 文章如有更新请访问 DFRobot 社区及 cnblogs 博客园,前者内容较全,后者排版及阅读体验更佳。 使用 K1C 时有个问题,过个一天或者一段时间再开机它的IP地址会发生改变,很是恼人。本文试图探究可能…

Jmeter 性能接口一本通

前言 学习Jmeter 接口自动化的难点在于场景设计和模块间的组合使用,因此实际操作过程中我们会遇到过很多难以解决的问题。本书既是对 jmeter 知识框架的一个总结,也是为了方便大家更好的学习使用它。从 jmeter 基础介绍入手,逐级深入,一直延伸到接口自动化持续集成框架和 D…

6、Git之团队协作机制

6.1、团队内协作 6.1.1、创建本地库如上图所示,一个名叫刘备的人,在本地电脑中创建了一个项目,并使用 git 来维护。 6.1.2、推送本地库到代码托管中心如上图所示,刘备想让别人也能看到自己本地库中的内容,就通过 push 命令,将本地库复制上传到代码托管中心,形成远程库。…