theme | highlight |
---|---|
healer-readable |
最近心血来潮打算用vue3+ts写一个背诗的h5(为满足自己的背诗习惯)。工欲善其事,必先利其器。先搭个架子啦!虽然是自己一个人写的项目,但是该有的开发规范也是要有的哦!在弄commit规范和自动生成changlog的时候,因为我想要提交表情开头的commit格式而踩尽无数坑!!!故写此文纪念~ 哦!不~ 是归纳总结分享给身边所有想踩坑的人们儿~ 好啦!废话不多说,正式开始我的表演~
首先,规范的commit信息能让人一眼清晰明的知道该提交属于什么类型、修改范围、具体改动,提高团队协作。也方便我们日后找bug,提高团队协作。
第一步,让我们先来了解下git提交信息的格式
Commit message 包括 Header、Body、Footer 三个部分。
不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。
-
Header 必填 不能换行(换行后不是粗体加黑显示的)
-
Body 选填 可以换行
-
Footer 选填 可以换行
为了让大家看的更明白,请看下图:
这个提交格式是git的提交信息格式哦,基于这个格式上咱们可以再添砖加瓦。下面让我们先来了解下多数人都在用的angluar的git提交规范加的砖和瓦。
目前大家使用规范较多的是Angular团队规范,它的格式如下:
<type>(<scope>): <subject> // 这一行是Header
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
该规范将 header 分为 type、scope、subject 三部分。
type
type指本次提交的类型,为必填项,必须为以下之一:
- feat: 一项新功能
- fix: 一个错误修复
- docs: 仅文档更改
- style: 不影响代码含义的更改(空白,格式,缺少分号等)
- refactor: 既不修正错误也不增加功能的代码更改(重构)
- perf: 改进性能的代码更改
- test: 添加缺失或更正现有测试
- chore: 更改构建过程或辅助工具和库,例如文档生成
scope
scope指本次提交的影响范围,为可选项,可以是指定提交更改位置的任何内容。我一般都写更改部分的模块名或者文件名。
当更改影响的范围不止一个范围时,可以使用星号(*)。当然也可以不填写。
subject
subject指本次提交的简要描述,它有如下两个规则。
- 不要大写第一个字母
- 末尾没有点(.)
- 是否产生了破坏性修改
如果当前代码与上一个版本不兼容,如版本升级、接口参数减少、接口删除、迁移等就是破坏性修改。
如果是破坏性修改则 Footer 部分会以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法。如下:
BREAKING CHANGE: 变动的描述\理由\迁移方法
- 关闭 Issue 如果当前 commit 针对某个 issue,那么可以在 Footer 部分关闭这个 issue,也可以关闭多个 issue。填写格式如下:
Close #ISSUE_ID
Closes #ISSUE_ID, #ISSUE_ID
如果你使用jira,也可以填写本次修改所影响的JIRA_ID,但是要开启该功能需要先集成 jira与gitlab集成 & jira与github集成。填写格式如下:
re #JIRA_ID // re是关于的意思
fix #JIRA_ID
按照以上的格式提交到git上显示如下:
以上是Angular团队的commit规范,大家也可以根据自己团队的习惯去自定义commit规范。
这部分我就给大家介绍下,我在这次项目里想要自定义的提交格式,大家可以举一反三。
我想自定义的规范是基于Angluar规范的,只是在它的基础上加个表情gitmoji字段在最打头的位置。格式如下:
:gitmoji: <type>(<scope>): <subject> // 这一行是Header
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
其中gitmoji项是必填的,值只能为gitmoji提供的表情列表中的表情。
按照我想要的格式提交到git上显示如下:
这里先说一下,Angluar规范里也可以写表情,但是要借助 git-cz 是在subject打头显示的,跟我想要的效果不符合。
到这里,commit规范格式也讲的差不多啦!是时候开干了!!!
conventional-changelog
standard-version
以及各个工具的文档和源码