首页 > 其他分享 >Git 教程

Git 教程

时间:2023-08-10 20:27:09浏览次数:33  
标签:教程 git 版本 -- Git 提交 commit 分支

 

前言

工作区(Working Directory)

暂存区(Stage)

版本库(Repository)

远程仓库(Remote)

1. Git 分支规范

1.1 分支类型

分支类型基于Git Flow规范,并做了简化。

功能分支(feature) 紫色

发布分支(release) 黑色和红色

修复分支(hotfix) 灰色

主分支(master) 绿色

 

1.2 分支命名

类型 规则 备注
功能分支 feature-* 以功能或上线日期为准
发布分支 develop dev环境发布分支
发布分支 test/sit 测试环境发布分支
发布分支 release* 预发布和生产发布分支, 默认release,多版本并行可release1, release2
修复分支 hotfix-* 已修复问题命名
主分支 master 保护分支,一般发布完生产需要合并到master

 

1.3 分支合并

该图的原型为git flow, 原作者为Vincent Driessen

  1. 公共发版分支,是供给多版本有交叉提测时段时,针对某一环境发版专用的环境发版分支。
  2. 公共发版分支,必须是单向合并,严禁反向污染。 (gitlab线上合并,有冲突时禁用)
  3. release生产/预发布发版分支open in new window,由业务线组长或该版本负责人,统一集中合并。
  4. 公共发版分支维护统筹,由各业务线组长负责;
  5. 跨业务线开发,需要发布环境时,需主动联系该业务线负责人,说明版本计划、时间、公共包版本等,沟通清楚无异议后方可使用
  6. 严控版本Tagopen in new window,每次发版后,需业务新建tag入口组长或功能主开发进行操作,格式如下: 生产版本: Tag-YYYYMMDD版 (日期为发版日期) 修复版本: Fix-YYYYMMDD版 (日期为修复日期)

 

2. Git 提交规范

本节由alan提供。

commit message format(信息域) commit message 一般分为三个部分 Header,Body 和 Footer

<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>

2.1 HEAD

type 用于说明 commit的类型,允许以下标识:

类型 描述
feat 新增功能
fix 修复 bug
docs 文档变更
style 不影响代码运行的变动如:样式调整
refactor 重构(既不是新增加的 feature,也不是修复 bug)
pref 性能优化
test 增加测试如:测试代码
chore 构建过程或者辅助功能的变动
revert 版本回退
build 打包

2.2 BODY

本次commit的内容描述

本次commit存在不兼容变动或者关闭的 issue

2.4 注意事项

1:每个提交都必须使用类型字段前缀,它由一个名词构成,诸如 feat 或 fix , 其后接可选的范围字段,可选的 !,以及必要的冒号(英文半角)和空格。
2:当一个提交为应用或类库实现了新功能时,必须使用 feat 类型。
3:当一个提交为应用修复了 bug 时,必须使用 fix 类型。
4:范围字段可以跟随在类型字段后面。范围必须是一个描述某部分代码的名词,并用圆括号包围, 例如: fix(parser): 描述字段必须直接跟在 <类型>(范围) 前缀的冒号和空格之后。 描述指的是对代码变更的简短总结,例如: fix(doc): update ref doc
5:在简短描述之后,可以编写较长的提交正文,为代码变更提供额外的上下文信息。正文必须起始于描述字段结束的一个空行后。
6:提交的正文内容自由编写,并可以使用空行分隔不同段落。
7:在正文结束的一个空行之后,可以编写一行或多行脚注。每行脚注都必须包含 一个令牌(token),后面紧跟 : 或 # 作为分隔符。
8:脚注的令牌必须使用 - 作为连字符,比如 Acked-by (这样有助于 区分脚注和多行正文)。有一种例外情况就是 BREAKING CHANGE,它可以被认为是一个令牌。
9:脚注的值可以包含空格和换行,值的解析过程必须直到下一个脚注的令牌/分隔符出现为止。
10:破坏性变更必须在提交信息中标记出来,要么在 <类型>(范围) 前缀中标记,要么作为脚注的一项。
11:包含在脚注中时,破坏性变更必须包含大写的文本 BREAKING CHANGE,后面紧跟着冒号、空格,然后是描述,例如: BREAKING CHANGE: environment variables now take precedence over > config files 。
12:包含在 <类型>(范围) 前缀时,破坏性变更必须通过把 ! 直接放在 : 前面标记出来。 如果使用了 !,那么脚注中可以不写 BREAKING CHANGE:, 同时提交信息的描述中应该用来描述破坏性变更。
13:在提交说明中,可以使用 feat 和 fix 之外的类型,比如:docs: updated ref docs 。
14:工具的实现必须不区分大小写地解析构成约定式提交的信息单元,只有 BREAKING CHANGE 必须是大写的。 BREAKING-CHANGE 作为脚注的令牌时必须是 BREAKING CHANGE 的同义词。 :::

2.5 具体使用

站点已集成commitizen遵循谷歌 conventionalcommits约定式提交规范,进行了汉化方便辨识同时集成了commitlint和 lintstaged规则格式校验; 提交类型以及内容体参照

标签:教程,git,版本,--,Git,提交,commit,分支
From: https://www.cnblogs.com/miangao/p/17621391.html

相关文章

  • ​  appuploader使用教程
    ​ appuploader使用教程转载:appuploader使用教程目录 问题解决秘籍登录失败don’thaveaccess,提示没权限或同意协议上传后在app管理中心找不到版本提交不是等待上传状态提示已经上传过包上传提示tcpPortorudpPorts错误上传提示已经有进程在上传保存上传专用密......
  • appuploader使用教程
    ​ 转载:appuploader使用教程目录 问题解决秘籍登录失败don’thaveaccess,提示没权限或同意协议上传后在app管理中心找不到版本提交不是等待上传状态提示已经上传过包上传提示tcpPortorudpPorts错误上传提示已经有进程在上传保存上传专用密码提示错误上传专用......
  • 无涯教程-Perl - int函数
    描述此函数返回EXPR的整数元素,如果省略则返回$_。int函数不进行舍入。如果需要将值四舍五入为整数,则应使用sprintf。语法以下是此函数的简单语法-intEXPRint返回值此函数返回EXPR的整数部分。例以下是显示其基本用法的示例代码-#!/usr/bin/perl$int_val=int(......
  • SolidWorks2022中文版图文安装教程、激活方法附安装包下载
    一、下载方式[软件名称]:SolidWorks2022[软件语言]:简体中文 [软件大小]:14.7G[安装环境]:Win11/Win10[硬件要求]:[email protected]内存@8G及以上下载链接%70%61%6E%2E%62%61%69%64%75%2E%63%6F%6D/%73/%31%4E%2D%4D%7A%53%41%34%71%32%76%70%5A%4F%51%4B%78%4E%4E%57%41%79%67?%70%77%64=%......
  • 第2章 Git安装
    兄弟,恭喜你,刷到这篇超详细安装GIt教程,就让Codeyang带你一步一步的安装Git!~~Git官网地址:https://git-scm.com/查看GNU协议,可以直接点击下一步。选择Git安装位置,要求是非中文并且没有空格的目录,然后下一步。Git选项配置,推荐默认设置,然后下一步。Git安装目录名,不用修......
  • 无涯教程-Perl - index函数
    描述此函数返回STR中第一次出现的SUBSTR的位置,该位置从开头(从零开始)开始,或者从POSITION(如果指定)开始。语法以下是此函数的简单语法-indexSTR,SUBSTR,POSITIONindexSTR,SUBSTR返回值失败时此函数返回-1,否则返回匹配字符串的位置(第一个字符从零开始)。例......
  • AI模型部署&推理进阶教程:使用CSK6视觉开发套件拍照并进行物体识别
    前言在已发布的《CSK6AI模型部署教程》系列文章中,我们实现了将训练的LNN模型在CSK6芯片上运行的完整流程:将一张苹果的图片提取到的特征,并打包到了固件里面,然后在固件里去将它送给thinker模型去进行推理,得出一个苹果的一个推理结果。在以往分享的示例中我们的thinker模型是打包WAS......
  • 传奇一条龙开服教程设置客户刷装备提示物品装备不存在
    为何传奇一条龙在给客户制作传奇版本中设置好了GM命令,也获得了GM权限为10了,仍是不能刷配备呢?老是提示游戏物品不存在,可是传奇一条龙配备分明是存在的,即是刷不出来!今日就来讲一些这个是什么缘由形成的,你虽然获得了GM权限,也清楚这些配备在游戏中是存在的,可是或许这些配备不在答应被制......
  • linux安装 git
    1.环境centos:7.5(64)git:1.8.32.步骤Set1:查看已有GIT版本#git--version-bash:git:commandnotfoundSet2:查看yum源中的版本#yuminfogit版本符合,直接安装Set3:yum安装 #yuminstallgit安装完成。......
  • AI绘画教程:为艺术而生的算法,你还在烦恼小红书与公众号的配图吗?(下)
    大家好,我是千寻哥,在上一篇给大家分享了我的第一篇AI绘画类教程的上集:AI绘画教程:为艺术而生的算法,你还在烦恼小红书与公众号的配图吗(上)?别着急,今天就来完成下半部分,在上一集中,我们介绍了三种用于生成AI绘画的网站。使用网站生成的AI绘画图片用于小红书的封面以及素材,从而助力你的新媒......