如何优雅的编写git的提交信息

前言

在公司的日常工作当中或者个人的开源项目,将代码提交到代码库时。都会遇到下面这样的对话框,通常都会随便写点内容在里面。

a5cf25def732b8efeae6d717d286139b.png

当遇到问题需要回溯的时候就成了给自己造成的麻烦,因为无法通过commit message来非常直观的看到这一次提交了什么,做了哪些修改。这个时候只能一个一个文件打开来看。这个时候如果有规范的提交将会减少不必要的麻烦。

23731303600e6fac2fc16d1d5226a696.png

概述

约定式提交规范是一种基于提交信息的轻量级约定。它提供了一组简单规则来创建清晰的提交历史;这更有利于编写自动化工具。通过在提交信息中描述功能、修复和破坏性变更, 使这种惯例与 SemVer 相互对应。

提交说明的结构如下所示:


原文:

<type>[optional scope]: <description>[optional body][optional footer(s)]

译文:

<类型>[可选 范围]: <描述>[可选 正文][可选 脚注]

提交说明包含了下面的结构化元素,以向类库使用者表明其意图:

  1. fix: 类型fix 的提交表示在代码库中修复了一个 bug(这和语义化版本中的 PATCH 相对应)。

  2. feat: 类型feat 的提交表示在代码库中新增了一个功能(这和语义化版本中的 MINOR 相对应)。

  3. BREAKING CHANGE: 在脚注中包含 BREAKING CHANGE: 或 <类型>(范围) 后面有一个 ! 的提交,表示引入了破坏性 API 变更(这和语义化版本中的 MAJOR 相对应)。破坏性变更可以是任意 类型 提交的一部分。

  4. fix:feat: 之外,也可以使用其它提交 类型 ,例如 @commitlint/config-conventional(基于 Angular 约定)中推荐的 build:chore:ci:docs:style:refactor:perf:test:,等等。

  5. 脚注中除了 BREAKING CHANGE: <description> ,其它条目应该采用类似 git trailer format 这样的惯例。

其它提交类型在约定式提交规范中并没有强制限制,并且在语义化版本中没有隐式影响(除非它们包含 BREAKING CHANGE)。可以为提交类型添加一个围在圆括号内的范围,以为其提供额外的上下文信息。例如 feat(parser): adds ability to parse arrays.

示例

包含了描述并且脚注中有破坏性变更的提交说明
feat: allow provided config object to extend other configsBREAKING CHANGE: `extends` key in config file is now used for extending other config files
包含了 ! 字符以提醒注意破坏性变更的提交说明
feat!: send an email to the customer when a product is shipped
包含了范围和破坏性变更 ! 的提交說明
feat(api)!: send an email to the customer when a product is shipped
包含了 ! 和 BREAKING CHANGE 脚注的提交说明
chore!: drop support for Node 6BREAKING CHANGE: use JavaScript features not available in Node 6.
不包含正文的提交说明
docs: correct spelling of CHANGELOG
包含范围的提交说明
feat(lang): add polish language
包含多行正文和多行脚注的提交说明
fix: prevent racing of requestsIntroduce a request id and a reference to latest request. Dismiss
incoming responses other than from latest request.Remove timeouts which were used to mitigate the racing issue but are
obsolete now.Reviewed-by: Z
Refs: #123

参考:

  • 1.约定式提交官网:https://www.conventionalcommits.org/zh-hans/

  • 2.完整提交类型列表:

    https://github.com/pvdlg/conventional-changelog-metahub#commit-types

  • al-commits Conventional Changelog:https://github.com/conventional-changelog/standard-version

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

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

相关文章

android快捷开发之Retrofit网络加载框架的简单使用

大家都知道&#xff0c;安卓最大的特点就是开源化&#xff0c;这自然会产生很多十分好用的第三方API&#xff0c;而基本每一个APP都会与网络操作和缓存处理机制打交道&#xff0c;当然&#xff0c;你可以自己通过HttpUrlConnection再通过返回数据进行解析解决&#xff0c;而我们…

如何线性求乘法逆元

ny[i](ny[p%i]*(p-p/i))%p;不如背一发板子&#xff1f;转载于:https://www.cnblogs.com/paozi/p/7788640.html

打开计算机无法显示工具栏,任务栏不显示打开的窗口怎么办教程

我们在使用电脑的时候&#xff0c;打开很多程序的时候&#xff0c;会最小化某些窗口&#xff0c;只留在用的窗口&#xff0c;而最小化都是缩小为一个图标放入屏幕下方的任务栏的&#xff0c;但有时候不知道为什么任务栏不显示打开的窗口了&#xff0c;这时候也就无法直接用鼠标…

rsync文件同步、Inotify-tools参数详解

inotifywait用于等待文件或文件集上的一个待定事件&#xff0c;可以监控任何文件和目录设置&#xff0c;并且可以递归地监控整个目录树&#xff1b; inotifywatch用于收集被监控的文件系统计数据&#xff0c;包括每个inotify事件发生多少次等信息从上面可知inotifywait是一个…

ArcGIS 10.6提取道路中心线的两种方法经典教程

我们工作中碰到的道路数据通常为面状,需要提取道路中心线,本文讲解ArcGIS10.6中从面状道路数据中提取道路中心线的两种常用经典方法。 方法一:使用ArcGIS 10.6提供的提取道路中心线工具 本实验中使用到面状数据如下所示: 首先,将面状数据转为线状数据。 转完之后,道路尽头…

衡量计算机浮点数操作性能,计算机系统基础:计算机性能评价知识笔记

1、计算机性能常用的性能评测方法1.1 时钟频率计算机的时钟频率可以反映出机器的运行速度。一般主频越高&#xff0c;速度越快。1.2 指令执行速度加法指令执行速度是衡量计算机性能指标的重要指标之一。1.3 等效指令速度法随着计算机指令系统发展&#xff0c;种类越来越多&…

Android之用HttpURLConnection断点下载谷歌云存储(google cloud storage)文件

1 需求 在Android app里面实现断点下载谷歌云存储(google cloud storage)文件,也就是说用户下载谷歌云存储(google cloud storage)文件的时候可以暂停下载,后续可以再继续下载 测试的图片谷歌云的下载地址:https://storage.googleapis.com/keepdrop/common_dev/file-6fb695ac…

python 写游戏好简单啊,我用键盘可以随意控制角色了【python 游戏实战 04】

前言 本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新…

ASP.NET登录以及注册

数据模型&#xff1a; 1 public class Model2 {3 public Model()4 {5 //6 // TODO: 在此处添加构造函数逻辑7 //8 }9 private string _Ucode; 10 /// <summary> 11 /// 账号 12 /// </summary> 13 public…

树形表的平行查询设计

本文由网友长空X投稿&#xff0c;欢迎转载、分享原文作者&#xff1a;长空X&#xff08;CSDN同名“长空X“&#xff0c;CkTools的作者&#xff0c;github: https://github.com/hjkl950217&#xff09;原文链接&#xff1a;https://www.cnblogs.com/gtxck/articles/16293295.htm…

Ubuntu 16.04安装SQLite Browser操作SQLite数据库

安装&#xff1a; sudo apt-get install sqlitebrowser 启动&#xff1a;

ArcGIS10从入门到精通系列实验视频教程合集(持续更新)

全集视频请点击&#xff1a;《ArcGIS10.X从入门到精通系列实验教程》

(13)python 字典 2 分钟速解

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

Kotlin之函数作为参数传递

1 、Kotlin之函数作为参数传递 我们在写BaseQuickAdapter适配器的时候,有时候嵌套多个BaseQuickAdapter,如果最里面的view触发点击事件,我们可以把函数作为参数通过构造函数一层一层传递进去。 2、代码测试 private var test: (Boolean, Int, Int) -> Unit = {result, a…

计算机绘画作品 星空,关于近期绘画作品《星空系列》的自述:

《星空系列》是一个很偶然的念想下产生的&#xff0c;但又绝非偶然。最开初的点是高一刚开始学画的时候&#xff0c;高中的老师给我们免费提供油画材料给我们练习&#xff0c;那时候我并没有“安分”地练习高考绘画&#xff0c;总想做一些关于自己想法的作品&#xff0c;那时候…

BootStrap导航栏的使用

默认的导航栏 创建一个默认的导航栏的步骤如下&#xff1a; 向 <nav> 标签添加 class .navbar、.navbar-default。向上面的元素添加 role"navigation"&#xff0c;有助于增加可访问性。向 <div> 元素添加一个标题 class .navbar-header&#xff0c;内部包…

安装SQL Server 2005时,出现“SQL Server 服务无法启动。……”提示的解决方法

安装SQL Server 2005时&#xff0c;出现“SQL Server 服务无法启动。……”提示的解决方法上午在自己XP SP3电脑上安装SQL Server 2005时出现如下提示&#xff1a; 根据这一情况&#xff0c;我把自己的解题步骤写下来和大家分享&#xff0c;虽然简单了些&#xff0c;可是安装的…

.NET MAUI 正式发布,再见了 Xamarin.Forms

David Ortinau 在dotnet 团队博客上发表了一篇文章《Introducing .NET MAUI – One Codebase, Many Platforms》&#xff0c;在这篇文章里宣布了MAUI的正式发布。https://github.com/dotnet/maui/releases/tag/6.0.312 https://devblogs.microsoft.com/dotnet/introducing-dotn…

南京师范大学汤国安教授《地理信息与人类生活》系列精品课程(5集全)

《地理信息与人类生活》汤国安老师公共课&#xff08;5集全&#xff09; 人类掌握与应用地理信息的历史&#xff0c;从一个侧面反映了人类社会的发展进程。在数字化的时代&#xff0c;地理信息技术更是渗透到人类生活的方方面面。本课程通过五节课程的讲解&#xff0c;展示了地…

利用SQL注入获取服务器最高权限

单位有台数据库服务器&#xff08;windows 2000 操作系统&#xff0c;sql server 2000&#xff09;前段时间莫名其妙的被***了跑到机房&#xff0c;通过PE进去一看&#xff0c;发现多了一个账户&#xff08;SQLDEBUG)。并且administrator账户被禁用了看看数据没少&#xff0c;也…