Git Commit 规范
背景
git规定提交时必须要写提交信息,作为改动说明保存在 commit 历史中,方便回溯。规范的 log 不仅有助于他人 review,还可以有效的输出 change_log甚至对于项目的研发质量都有很大的提升。参考目前比较流行的Angular团队的commit规范
「Angular commit规范格式」
<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>
分别对应 Commit message 的三个部分:Header,Body 和 Footer
Header
Header 部分只有一行
包括三个字段:type(必需)、scope(可选)和subject(必需)
type::用于说明 commit 的类型,一般有以下几种
feat: 新增feature fix: 修复bug docs: 仅仅修改了文档,如readme.md style: 仅仅是对格式进行修改,如逗号、缩进、空格等。不改变代码逻辑 refactor: 代码重构,没有新增功能或修复bug perf: 优化相关,如提升性能、用户体验等。 test: 测试用例,包括单元测试、集成测试。 chore: 改变构建流程、或者增加依赖库、工具等。 revert: 版本回滚
scope:用于说明 commit 影响的范围
❝
比如:视图层、控制层、数据层、docs、config、plugin、util、test
❞subject:commit 目的的简短描述
❝
一般不超过50个字
❞
Body
补充 subject 添加详细说明,可以分成多行
适当增加原因、目的等相关因素,也可不写
参考
# body: 72-character wrapped. This should answer:
# * Why was this change necessary?
# * How does it address the problem?
# * Are there any side effects?
# initial commit
「Footer」
❝当有当前代码与上一个版本不兼容(Breaking Change)时必须在这里描述清楚
修复的 bug(关闭issue)或是链接到相关文档,如 Closes #1, Closes #2, #3
❞
使用
设置git 提交信息模板
新建 .gitmessage.txt(模板文件) ,参考内容如下
# headr: <type>(<scope>): <subject>
# - type: feat, fix, docs, style, refactor, test, chore
# - scope: can be empty
# - subject: start with verb (such as 'change'), 50-character line
#
# body: 72-character wrapped. This should answer:
# * Why was this change necessary?
# * How does it address the problem?
# * Are there any side effects?
#
# footer:
# - Include a link to the issue.
# - BREAKING CHANGE
#
配置提交信息模板
//这个命令只能设置当前分支的提交模板
git config commit.template [模板文件名]
//这个命令能设置全局的提交模板,注意global前面是两杠
git config --global commit.template [模板文件名]
Idea 插件
安装插件
使用
本文使用 markdown.com.cn 排版