<类型>[可选的作用域]: <描述>
[可选的正文]
[可选的脚注]
quick start
1. 全局安装commitizen & cz-conventional-changelog
commitizen
是一个撰写合格commit message
的工具,用于代替git commit
指令,而cz-conventional-changelog
适配器提供conventional-changelog标准(约定式提交标准)。基于不同需求,也可以使用不同适配器。
npm install -g commitizen cz-conventional-changelog
echo ‘{ “path”: “cz-conventional-changelog” }’ > ~/.czrc
安装完毕后,可直接使用git cz
来取代git commit
。
全局模式下,需要 ~/.czrc
配置文件, 为commitizen
指定adapter
。
2. 项目内安装commitlint & husky
commitlint
负责用于对commit message
进行格式校验,husky
负责提供更易用的git hook
。
use npm
npm i -d husky @commitlint/config-conventional @commitlint/cli
use yarn
yarn add husky @commitlint/config-conventional @commitlint/cli -d
com``mitlint
只能做格式规范,无法触及内容。对于内容质量的把控只能靠我们自己。
3. 添加相应配置
创建commitlint.config.js
# in the same path as package.json
echo ‘module.exports = {extends: [“@commitlint/config-conventional”]};’ > ./commitlint.config.js
引入husky
# package.json
…,
“husky”: {
“hooks”: {
“commit-msg”: “commitlint -e $git_params”
}
}
4. 使用
执行git cz
进入interactive模式,根据提示依次填写
1.select the type of change that you’re committing 选择改动类型 ()
2.what is the scope of this change (e.g. component or file name)? 填写改动范围 ()
3.write a short, imperative tense description of the change: 写一个精简的描述 ()
4.provide a longer description of the change: (press enter to skip) 对于改动写一段长描述 ()
5.are there any breaking changes? (y/n) 是破坏性修改吗?默认n (
6.does this change affect any openreve issues? (y/n) 改动修复了哪个问题?默认n (
生成的commit message格式如下:
():
填写完毕后,husky
会调用commitlint
对message进行格式校验,默认规定type
及subject
为必填项。
任何git commit
指令的option
都能用在 git cz
指令上, 例如git cz -a
commit message规范在rrd-fe落地使用情况
针对团队目前使用的情况,我们讨论后拟定了commit message
每一部分的填写规则。推荐:java进阶教程资料,公众号java精选,回复java面试,获取面试资料。
1. type
type
为必填项,用于指定commit的类型,约定了feat
、fix
两个主要type
,以及docs、style、build、refactor、revert五个特殊type
,其余type
暂不使用。
# 主要type
feat: 增加新功能
fix: 修复bug
# 特殊type
docs: 只改动了文档相关的内容
style: 不影响代码含义的改动,例如去掉空格、改变缩进、增删分号
build: 构造工具的或者外部依赖的改动,例如webpack,npm
refactor: 代码重构时使用
revert: 执行git revert打印的message
# 暂不使用type
test: 添加测试或者修改现有测试
perf: 提高性能的改动
ci: 与ci(持续集成服务)有关的改动
chore: 不修改src或者test的其余修改,例如构建过程或辅助工具的变动
当一次改动包括主要type
与特殊type
时,统一采用主要type
。
2. scope
scope
也为必填项,用于描述改动的范围,格式为项目名/模块名,例如:node-pc/common
rrd-h5/activity
,而we-sdk
不需指定模块名。如果一次commit修改多个模块,建议拆分成多次commit,以便更好追踪和维护。
3. body
body
填写详细描述,主要描述改动之前的情况
及修改动机
,对于小的修改不作要求,但是重大需求、更新等必须添加body来作说明。
4. break changes
break changes
指明是否产生了破坏性修改,涉及break changes的改动必须指明该项,类似版本升级、接口参数减少、接口删除、迁移等。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、oppo等大厂,18年进入阿里一直到现在。
深知大多数java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注java获取)

线程、数据库、算法、jvm、分布式、微服务、框架、spring相关知识
一线互联网p7面试集锦+各种大厂面试集锦
学习笔记以及面试真题解析
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》
pring相关知识
[外链图片转存中…(img-bc9wfze3-1713545414096)]
一线互联网p7面试集锦+各种大厂面试集锦
[外链图片转存中…(img-yximdwrq-1713545414096)]
学习笔记以及面试真题解析
[外链图片转存中…(img-joetd1qc-1713545414097)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》
发表评论