如何优雅的编写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;而我们…

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

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

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

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

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

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

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

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

树形表的平行查询设计

本文由网友长空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;

(13)python 字典 2 分钟速解

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

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

《星空系列》是一个很偶然的念想下产生的&#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…

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

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

3分钟搞定 C++ if else 语句 05

作者简介 作者名&#xff1a;1_bit 简介&#xff1a;CSDN博客专家&#xff0c;2020年博客之星TOP5&#xff0c;蓝桥签约作者。15-16年曾在网上直播&#xff0c;带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息&#xff0c;迷茫的你会找到答案。系列教程将会…

Android之封装倒计时页面

1 、需求 多个页面需要用到显示定时器页面,页面里面时间会一秒一秒减少,页面布局如下,开了定时器,如果其它页面也打开会使用之前的页面里面显示的时间,也就是说在有效范围内,时间不刷新。 2 、关键点 使用Android自带的倒计时类CountDownTimer CountDownTimer mCount…

1小时学会不打代码制作一个网页精美简历(1)

作者简介 作者名&#xff1a;1_bit 简介&#xff1a;CSDN博客专家&#xff0c;2020年博客之星TOP5&#xff0c;蓝桥签约作者。15-16年曾在网上直播&#xff0c;带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息&#xff0c;迷茫的你会找到答案。系列教程将会在…

分部方法 partial

当有如下这样类似的情况出现的时候&#xff0c;可以有更好的优化方式来处理&#xff0c;那就是分部方法 1 class PartOld2 {3 string name;4 5 public virtual void OnChangeName(string str)6 {7 }8 9 public string Name 10…

一文讲透为Power Automate for Desktop (PAD) 实现自定义模块

今天写了一篇长文&#xff0c;《一文讲透为Power Automate for Desktop (PAD) 实现自定义模块 - 附完整代码》&#xff0c;有兴趣的同学点击 “阅读原文” 参考 &#xff0c;文章地址是 https://www.cnblogs.com/chenxizhang/p/16287195.html 微软的PAD是RPA的一种&#xff0…

软件自动化测试的主要目的,功能测试的目的是什么

从功能测试到自动化测试&#xff1f;从常见的自动化测试过程开始&#xff01;在项目的启动阶段功能测试 目的&#xff0c;我们必须阐明为什么要进行自动化&#xff0c;并选择合适的项目进行自动化测试. 1.为什么要进行自动化&#xff1f;在开始自动化测试之前&#xff0c;我们需…

基于Google Earth Pro做数字化,并在ArcGIS中转为Shapefile图层

在精度满足要求的前提下,可以基于Google Earth Pro做数字化,并在ArcGIS中转为Shapefile图层,然后经行投影转换,得到最终的shp数据。主要步骤包括:新建多边形、导出多边形、格式转换,投影转换等。 一. 新建多边形 命名为皇城水库范围,设置线条和面的样式/颜色,并在影像上…