搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
神奇cpp
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
2021年面试,整理全网初、中、高级常见Java面试题_面试 初中高级算法
2
vuefullcalendar怎么判断切换上下月_死锁;上下文切换;常用缓存淘汰策略FIFO、LFU、LRU...
3
js中会改变原数组的方法及不改变原数组的方法整理_js数组方法会改变原数组
4
简述OpenStack和华为私有云HCS_fusionsphere openstack
5
OpenCV基础知识(9)— 视频处理(读取并显示摄像头视频、播放视频文件、保存视频文件等)_opencv播放视频
6
[Python3网络爬虫开发实战] pyspider 框架介绍_pyspider 后端数据库是什么
7
LeetCode1 Java_leetcode java 1
8
高考结束了,聊聊洋哥从学生至今的成长之路~_findyi真实身份
9
文本生成 [1] 文本生成任务&评分指标
10
【狂神说Java】Mybatis笔记_【狂神说java】mybatis 笔记
当前位置:
article
> 正文
GIT仓库使用规范_git仓库规范方案
作者:神奇cpp | 2024-08-13 19:16:38
赞
踩
git仓库规范方案
概要
代码版本管理的规范文档,包括定义项目在Stash上的创建规范,版本号定义,Git中Branch的使用,以及多Branch,多版本的维护,版本管理的目的在于在多人,多版本,多阶段的开发环境下,既能保证尽可能的多线开发,又能保证线上版本的明确性和溯源。
版本管理
版本代表产品/项目的版本号,每一次的版本变更表示一次正式的发布。这里的版本和代码的版本并无任何关系,但是后续部分会说明如何利用Git的Branch和Tag功能去追踪某一个版本下的代码源文件。版本管理的原则如下
能够清晰的对外对内描述每一个版本的功能变更
能够回溯到之前的版本
能够方便追踪到某个版本下的所有源文件
能够同时维护多个版本
版本号定义
版本号由三部分数字组成,每部分数字英文句号连接:Major_Version_Number.Minor_Version_Number[.Revision_Number] ,每一次版本的变更代表一次对外发布
Major_Version_Number 代表大的milestone,通常是指大的功能模块的上线,或者架构调整
Minor_Version_Number 代表功能的增强,系统的局部优化
Revision_Number 代表bug修复和极小功能调整
非Mobile App:Revision_Number需要以YYMMDD00的格式出现,YYMMDD为时间戳,表示该次修复发布的时间,精确到天,00代表该天发布的第几个版本,以01开始,最高到99。
Mobile App:Revision_Number和Major_Version_Number以及Minor_Version_Number一样,为数字递增,和发布在应用商店上的版本保持一致
比如:1.2.14080203 表示基于1.2 的在2014年8月2日做的第三次发布。
利用Git进行产品和项目的多版本维护/发布
原则
Master(多模块情况下是{module_name}_master)上永远是线上的版本
每次Major Version 和 Minor Version的更新(产品/项目发布后)需要在该产品所用到的所有系统(不管此次更新有没有涉及此系统)上开一个Branch进行维护,Branch名称为版本号,但是不要加上Revision Number
每次Major Version, Minor Version, Revision的更新需要在该产品所用到的所有系统(不管此次更新有没有涉及此系统)的相应Branch中打上Tag,Tag名称为版本号
开发前需要明确哪些Repository属于这个产品/项目,哪些属于基础服务。
如果基础服务是以Jar包/Plugin形式打包在其他代码里,那需要用我们的本地Artifactory库来管理这些Jar包/Plugin,在代码的Maven/Ivy/Gradle 以及Grails的BuildConfig里面,会有这些依赖的版本描述,用来将基础服务和某个版本的产品/项目代码挂钩
commit内容规范(请务必在
rebase
时使用规范)
**格式 type-commit (如:fixed-安卓手机不兼容)
feat/new:新功能(feature)
fixed:修补bug
docs:文档(documentation)
style/css: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
GIT仓库操作示意图
初始化
masterdevv1.0初始化项目迭代开发masterdevv1.0
注:命名
master:线上分支
Dev:开发分支
v0.0:迭代分支
开发与迭代
devv1.0rebaseV1.0建立开发分支开发结束建立rebase分支拉取并合并最新dev分支解决冲突合并commit并提交(tag)devv1.0rebaseV1.0
注:命名
Dev:开发分支
v0.0:迭代分支
rebaseV1:合并用分支
流程
从DEV环境切出开发开发迭代分支
开发结束后,切换至dev分支,拉取最新代码
切换至v0.0,合并dev分支代码,解决冲突
创建rebanse分支,合并commit内容
切换至dev分支,合并rebanse分支,添加tag,并提交
上线
devrebaseDevmaster创建rebase合并commit并提交(标记tag)devrebaseDevmaster
注:命名
master:线上分支
Dev:开发分支
rebaseDev:合并用分支
流程
创建rebase 分支
切换至rebanse,合并commit
切换至master,合并rebase,添加tag,并提交
线上修复
masterhotfixrebaseMasterdevrebaseDev建立修复分支测试完成创建rebase合并commit并提交(标记tag)合并dev并解决冲突创建rebase合并commit并提交masterhotfixrebaseMasterdevrebaseDev
注:命名
master:线上分支
hotfix:修复分支
Dev:开发分支
rebaseMaster:主分支合并用分支
rebaseDev:开发分支合并用分支
流程
创建hotfix修复分支
修复BUG后创建rebaseMaster
切换至rebaseMaster分支,合并commit,提交至master
合并dev开发分支内容,并解决冲突
创建rebaseDev分支,合并commit
切换至dev分支,合并rebaseDev,标记tag,提交
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/神奇cpp/article/detail/976151
推荐阅读
article
Spark
Streaming
_sparkstreaming延迟
数据处理
...
Spark
Streaming
介绍随着大数据的发展,人们对大数据的处理要求也越来越高,传统的MapReduce等批处理框...
赞
踩
article
【
WebScraper
系列】
获取
翻页
表格
数据
_
webscraper
爬取多页
表格
...
本文详细介绍了如何使用Web Scraper工具从网页中抓取
翻页
表格
数据
,包括创建Sitemap、设置
翻页
和
表格
选择器,...
赞
踩
article
修改
spark
-
streaming
源码,应对
kafka
数据
倾斜
_
kafka
分区
特别
倾斜
...
我们知道,
kafka
数据
分区
与
spark
数据
分区
一一对应,如果
kafka
数据
倾斜
,势必造成
spark
数据
倾斜
,在spar...
赞
踩
article
Apache
Spark
3.0 机器
学习
库(
MLlib
)
指南
_
sparkml
官方文档地址...
学习
地址:https://spark.apache.org/docs/latest/ml-guide.html
学习
目录M...
赞
踩
article
前端
处理
跨域
的
九种方式
(
超级详细
)
_
前端
跨域
...
指一个域下文档或者脚本去请求另一个域下
的
资源,这里
的
跨域
是广义
的
;同源策略
(
Same origin policy
)
,简称...
赞
踩
article
弃用
共享
存储
,部署高
可用
、低成本
o
rac
le
12c
rac
集群...
搞了好多
o
rac
le
rac
,都用的是
共享
存储
。双控制器加满配磁盘,15000转的sas插满插槽,做成raid 10,代...
赞
踩
article
前 5 名的顶级
iOS
系统
修复
和
恢复
软件
_
ios
系统
修复
工具
...
以下是适用于 iPhone 和 iPad 设备的 5 大最佳
iOS
系统
修复
和
恢复
软件
。在不断发展的智能手机世界中,i...
赞
踩
article
汽车电子
功能
安全
标准
ISO
2
6
2
6
2
解析(九)——
系统
部分_
iso
2
6
2
6
2
-
2
:
2
018...
本文介绍了汽车电子
功能
安全
标准
ISO
2
6
2
6
2
的
系统
部分,涵盖产品开发启动、技术
安全
需求阶段和
系统
设计阶段。在启动阶段,...
赞
踩
article
Elastic
Observability
8.15
:
AI
助手、
OTel
和
日志
质量增强功能...
Elastic
Observability
8.15
:
AI
助手、
OTel
OpenTelemetry Collecto...
赞
踩
article
hive
参数
优化
-----亲测有效_
hive
.
optimize
.
index
.
filter
...
hive
查询的时候,导致服务器负载过高,load值飙升,服务器CPU是8个,按理说load不超过8,都应算ok的,但是,...
赞
踩
article
kafka
架构
+原理+源码
_
jdk17
kafka
实战...
1.
kafka
架构
图2.
kafka
producer
_
jdk17
kafka
实战
jdk17
kafka
实战 ...
赞
踩
article
zookeeper
版本
更新
_
zookeeper
介绍
及运维实践...
Zookeeper
介绍
首先
介绍
下Zookeeper的背景、数据类型、使用场景以及ZAB协议,让大家对Zookeeper...
赞
踩
article
YOLOv5
+
单目
测距
(
python
)_
yolo
v5
单目
测距
_
yolo
测距
算法...
本文介绍了如何使用
YOLOv5
进行
单目
测距
,通过提取边框像素点并利用公式计算目标距离。主要内容包括代码实现、实验效果展示...
赞
踩
article
Hive 源码_对于filterholder(
java
.
lang
.
class
apache....
Hive_对于filterholder(
java
.
lang
.
class
)对于filterholder(
java
.
lang
...
赞
踩
article
RabbitMQ
的
管控
台
的
使用说明...
本文介绍了
RabbitMQ
的
管控
台各项功能,包括概览中
的
Totals、Global counts、Nodes、Ports...
赞
踩
article
npm
的
配置文件
-
npm
rc_
npm
userconfig
和.
npm
rc
不
一样...
简单点说, .
npm
rc 可以设置 package.json 中依赖包
的
安装来源,既从哪里下载依赖包。可以将当前
的
下载源...
赞
踩
article
连接
SQL
数据库
_
sqlconnection
getconnection
(...
ADO.NET通过Connection连接到
数据库
。Connection包括Open和Close方法。Open表示 打开...
赞
踩
article
30%
代码
由 AI 生成
,
单测准确率达到 90%
,
我在
阿里巴巴
国际站推广
通义
灵码
...
我叫狄建业
,
花名薛岳
,
2014 年 2 月加入阿里。我在阿里的工作经历主要分成几个阶段
,
第一阶段是 2014 年到 20...
赞
踩
article
rabbitmq
故障判断_
rabbitmq
ready
...
查看
rabbitmq
Dashboard 就能观察出整个集群的状态,
ready
可以看成是消息积压,但是大多是由死信队...
赞
踩
article
Git
使用
教程
(很详细)_
git
教程
...
在项目开发过程中,项目没开发到一个节点就会对当前项目进行备份,这个备份就是项目的一个版本;当我们继续开发一个阶段后,再次...
赞
踩
相关标签
spark
big data
scala
数据挖掘
kafka
streaming
大数据
前端
vue.js
javascript
html5
前端框架
数据库
运维
区块链
ios
cocoa
macos
iphone
windows
pdf
手机
ISO26262
功能安全