在多人协作的项目中,如果Git的提交说明精准,在后期协作以及Bug处理时会变得有据可查,项目的开发可以根据规范的提交说明快速生成开发日志,从而方便开发者或用户追踪项目的开发信息和功能特性。
本文主要内容:
- 介绍符合Angular规范(需要翻墙)的提交说明
- 介绍提交说明工具集cz(适配器、校验以及日志)的使用方法
- 介绍供开发者快速生成项目cz工具集的Vue CLI 3插件@ziyi2/ui-cz
这里提供演示项目地址:cz-example。
Git的提交说明
Git每次提交代码的时候都需要手写提交说明(Commit message):
git commit -m "hello world"
复制代码
书写多行可以使用以下命令:
git commit
复制代码
此时会跳出一个文本编辑器,可以在文本编辑器中书写多行提交说明:
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Your branch is up to date with 'origin/master'.
#
# Changes to be committed:
# new file: package.json
#
G:/git-lab/cz/.git/COMMIT_EDITMSG [unix] (19:49 24/01/2019)
复制代码
如果没有规范的提交说明,很难阐述当前代码的提交性质(修复Bug、代码性能优化、新增功能或者发布版本等)。查看Vue项目的Git提交说明(fix
表明修复问题、feat
表明新增功能...),它完全符合Angular规范:
手写符合规范的提交说明很难避免错误,可以借助工具来实现规范的提交说明。
规范的Git提交说明
- 提供更多的历史信息,方便快速浏览
- 可以过滤某些
commit
,便于筛选代码review
- 可以追踪
commit
生成更新日志 - 可以关联issues
Git
提交说明结构
Git
提交说明可分为三个部分:Header
、Body
和Footer
。
<Header> <Body> <Footer>
复制代码
Header
Header
部分包括三个字段type
(必需)、scope
(可选)和subject
(必需)。
<type>(<scope>): <subject>
复制代码
Vue源码的提交说明省略了
scope
。
type
type
用于说明 commit
的提交性质。
值 | 描述 |
---|---|
feat | 新增一个功能 |
fix | 修复一个Bug |
docs | 文档变更 |
style | 代码格式(不影响功能,例如空格、分号等格式修正) |
refactor | 代码重构 |
perf | 改善性能 |
test | 测试 |
build | 变更项目构建或外部依赖(例如scopes: webpack、gulp、npm等) |
ci | 更改持续集成软件的配置文件和package中的scripts命令,例如scopes: Travis, Circle等 |
chore | 变更构建流程或辅助工具 |
revert | 代码回退 |
scope
scope
说明commit
影响的范围。scope
依据项目而定,例如在业务项目中可以依据菜单或者功能模块划分,如果是组件库开发,则可以依据组件划分。
提示:
scope
可以省略。
subject
subject
是commit
的简短描述。
Body
commit
的详细描述,说明代码提交的详细说明。
Footer
如果代码的提交是不兼容变更或关闭缺陷,则Footer
必需,否则可以省略。
不兼容变更
当前代码与上一个版本不兼容,则Footer
以BREAKING CHANGE开头,后面是对变