Git Commit 规范

为什么要添加Git Commit规范(约束)?

git是现在市面上最流行的版本控制工具,书写良好的commit message能大大提高代码维护的效率也能有效提高代码CR的效率。但是在日常开发中由于缺少对于commit message的约束,导致填写内容随意、质量参差不齐,可读性低亦难以维护。而一个好的commit,让人一眼就知道这次 commit 对应干了什么,在项目中引入commit message规范可以有效解决这种问题。

Git Commit规范是什么?

git commit规范是在git commit将代码添加到本地仓库之前校验commit信息是否符合规定的校验,不通过则不能保存在本地仓库里。

怎么去添加Git Commit规范?

不同企业可能会根据企业特性去定制化调整commit规范,但目前行内使用最多的还是基于Angular 团队的 commit 规范。所以本次也只是对于这种规范进行简单介绍,以及使用 husky 插件来帮助我们检验是否符合规范。

<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>
// 分别对应 Commit message 的三个部分:Header,Body 和 Footer。

Header

type (必需) commit 的类别
scope (可选) 影响的范围
subject(必需) 简短的说明

type 的类型描述
feat新增功能f
fixbug 的修复
perf性能优化
refactor重构代码(既没有新增功能,也没有修复 bug)
build主要目的是修改项目构建系统(例如 glup,webpack,rollup 的配置等)的提交
ci主要目的是修改项目继续集成流程(例如 Travis,Jenkins,GitLab CI,Circle 等)的提交
docs文档更新
style不影响程序逻辑的代码修改(修改空白字符,补全缺失的分号等)
revert回滚某个更早之前的提交
chore变更构建流程和辅助工具
test新增测试用例或是更新现有测试

Body

对本次 commit 修改内容的具体描述, 可以分为多行。

# 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) 的链接。

husky 插件是什么?

husky 是一个 Git Hook 工具。husky 其实就是一个为 git 客户端增加 hook 的工具。将其安装到所在仓库的过程中它会自动在.git/ 目录下增加相应的钩子实现在 pre-commit 阶段就执行一系列流程保证每一个 commit 的正确性。部分 cd 在 commit stage 执行的命令可以挪动到本地执行,比如 lint 检查、比如单元测试。当然,pre-commit 阶段执行的命令当然要保证其速度不要太慢,每次 commit 都等很久也不是什么好的体验。

1、安装husky

yarn add -D husky @commitlint/config-conventional @commitlint/cli

2、配置 husky 插件(在 package.json 中新增一个 husky 相关配置)

"husky": {
  "hooks": {
    "pre-commit": "npm run lint", // 不需要在Commit时lint,不配置此项
    "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" // 提交信息检测
  }
}

3、Husky 配置
在项目的根目录下新建一个 commitlint.config.js 文件

module.exports = {
  extends: ['@commitlint/config-conventional'], // 使用@commitlint/config-conventional规范
};

配置完毕后,如果不按照规范提交是无法提交的。husky 工具会直接从 Git 命令层面打断你的提交。

参考文章:
git commit 规范
GitHook 工具 —— husky 介绍及使用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值