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

使用

  1. 设置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
#
  1. 配置提交信息模板
//这个命令只能设置当前分支的提交模板
git config commit.template   [模板文件名]
//这个命令能设置全局的提交模板,注意global前面是两杠
git config  --global commit.template   [模板文件名]

Idea 插件

  1. 安装插件
  1. 使用

本文使用 markdown.com.cn 排版

热门相关:勇闯天涯   重生全能悍妻:张狂大小姐   宠宠欲恋   隐婚99天:首长,请矜持   盖世双谐