前端⼀些好学好⽤的代码规范-Git提交规范(1)代码格式规范 之外,还有另外⼀个很重要的规范就是 git 提交规范!
除了 代码格式规范
在现在的项⽬开发中,通常情况下,我们都会通过 git 来管理项⽬。只要通过 git 来管理项⽬,那么就必然会遇到使⽤ git 提交代码的场景当我们执⾏ git commit -m "描述信息" 的时候,我们知道此时必须添加⼀个描述信息。但是中华⽂化博⼤精深,不同的⼈去填写描述信息的时候,都会根据⾃⼰的理解来进⾏描述。
⽽很多⼈的描述 “天马⾏空” ,这样就会导致别⼈在看你的提交记录时,看不懂你说的什么意思?不知道你当前的这次提交到底做了什么事情?会不会存在潜在的风险?
⽐如说,我们来看这⼏条提交记录:
你能够想象得到它们经历了什么吗?
提交规范 势在必⾏。
所以 git 提交规范
提交规范 来说,不同的团队可能会有不同的标准,那么咱们今天就以⽬前使⽤较多的 延伸出的 为例,来为⼤家详解 git 提交规范对于 git 提交规范
约定式提交规范要求如下:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
--------  翻译 -------------
<;类型>[可选范围]: <;描述>
[可选正⽂]
[可选脚注]
其中 <type> 类型,必须是⼀个可选的值,⽐如:
1. 新功能:feat
2. 修复:fix
3. ⽂档变更:docs
4. ....
约定式提交规范 来去做的化,那么你的⼀次提交描述应该式这个样⼦的:
也就是说,如果要按照 约定式提交规范
我想⼤家看到这样的⼀个提交描述之后,⼼⾥的感觉应该和我⼀样是崩溃的!要是每次都这么写,写到猴年马⽉了。
git 提交规范化⼯具 的东西,⽽我们要学习的 commitizen 就是其中的佼佼者!
⼀种叫做 git 提交规范化⼯具
commitizen 仓库名为 ,它提供了⼀个 git cz 的指令⽤于代替 git commit,简单⼀句话介绍它:
当你使⽤ commitizen 进⾏代码提交(git commit)时, commitizen 会提交你在提交时填写所有必需的提交字段!
这句话怎么解释呢?不⽤着急,下⾯我们就来安装并且使⽤⼀下 commitizen ,使⽤完成之后你⾃然就明⽩了这句话的意思!安装Commitizen
1.全局安装
npm install -g commitizen@4.2.4
2. 安装并配置 cz-customizable 插件
2.1 使⽤ npm 下载 cz-customizable
npm i cz-customizable@6.3.0 --save-dev
2.2 添加以下配置到 package.json 中
{
//省略其他内容
"config": {
"commitizen": {
"path": "node_modules/cz-customizable"
}
}
3.项⽬根⽬录下创建 .cz-config.js ⾃定义提⽰⽂件
// 可选类型
types: [
{ value: 'feat', name: 'feat:    新功能' },
{ value: 'fix', name: 'fix:      修复' },
{ value: 'docs', name: 'docs:    ⽂档变更' },
{ value: 'style', name: 'style:    代码格式(不影响代码运⾏的变动)' },
{
value: 'refactor',
name: 'refactor: 重构(既不是增加feature,也不是修复bug)'
},
{ value: 'perf', name: 'perf:    性能优化' },
{ value: 'test', name: 'test:    增加测试' },
{ value: 'chore', name: 'chore:    构建过程或辅助⼯具的变动' },
{ value: 'revert', name: 'revert:  回退' },
{ value: 'build', name: 'build:    打包' }
],
// 消息步骤
messages: {
git使用详解type: '请选择提交类型:',
customScope: '请输⼊修改范围(可选):',
subject: '请简要描述提交(必填):',
body: '请输⼊详细描述(可选):',
footer: '请输⼊要关闭的issue(可选):',
confirmCommit: '确认使⽤以上信息提交?(y/n/e/h)'
},
/
/ 跳过问题
skipQuestions: ['body', 'footer'],
// subject⽂字长度默认是72
subjectLimit: 72
}
4.使⽤ git cz 代替 git commit 使⽤ git cz 代替 git commit,即可看到提⽰内容
那么到这⾥我们就已经可以使⽤git cz 来代替了 git commit 实现了规范化的提交诉求了,但是当前依然存在着⼀个问题,那就是我们必须要通过 git cz 指令才可以完成规范化提交!
那么如果有马虎的同事,它们忘记了使⽤ git cz 指令,直接就提交了怎么办呢?
那么有没有⽅式来限制这种错误的出现呢?
答案是有的!