最近有幸参与到了一个开源项目的活动,看到别人提交的 commit 都很规范,自己的都是些什么鬼?经过一番搜索,发现网上很多都提到了 angularjs 的规范。
格式
Commit Message 格式
<type>(<scope>): <subject>
<空行>
<body>
<空行>
<footer>
分为 页眉、正文和页脚。其中页眉包括了类型、范围还有 subject。
type
类型 | 描述 | |
---|---|---|
feat | 新增 feature | |
fix | 修复bug | |
docs | 仅仅修改了文档,比如 README... | |
style | 修改了空格、格式缩进、逗号等,不改变代码逻辑 | |
refactor | 代码重构,没有加新功能或者修复bug | |
perf | 优化相关,比如提升性能、体验 | |
test | 测试用例,比如单元测试、集成测试等 | |
chore | 改变构建流程、或者增加依赖库、工具等 | |
revert | 回滚到上一个版本 |
scope
具体改动的文件
subject
对正文的概括
body
just as in <subject> use imperative, present tense: “change” not “changed” nor “changes”
includes motivation for the change and contrasts with previous behavior
footer
不兼容变动
如果当前代码和上一个版本不兼容,需要在这里以 BREAKING CHANGE 开头,后面接具体的描述
相关 issues
这里是和变动相关的 issues。例如:
Closed bugs should be listed on a separate line in the footer prefixed with "Closes" keyword like this:
Closes #234
or in case of multiple issues:
Closes #123, #245, #992
工具
既然有标准了,那肯定就会有对应的工具来辅助人们写 commit message,工具貌似还不少,我这里使用 git-cz
在需要使用 git commit 的时候换成 git cz 就行了。
就像这样
是不是很方便?
公众号:没有梦想的阿巧 后台回复 "群聊",一起学习,一起进步
有疑问加站长微信联系(非本文作者)