🎨
Notes
  • 持续更新中...
  • articles
    • browser
      • 深入理解现代浏览器 - 导航
      • 深入理解现代浏览器 - 架构
      • 深入理解现代浏览器 - 交互
      • 深入理解现代浏览器 - 渲染器进程
    • dsa
      • DSA - 并查集
      • DSA - 哈希表
      • DSA - AVL 树
      • DSA - 二叉树
      • 快速选择
      • Big O 算法复杂度
      • DSA - 栈和队列
      • DSA - 前缀树 Trie
      • DSA - 图
      • DSA - 链表
      • DSA - 递归
    • typescript
      • TypeScript 学习笔记 - 任意属性 (Indexable Types)
      • 力扣的 TypeScript 面试题
      • TypeScript 学习笔记 - as const
      • TypeScript 学习笔记 - infer
    • network
      • Internet Protocol (IP)
      • 计算机网络基础
      • 如何分辨同源和同站
      • DNS 如何查询 IP 地址?
    • vue
      • Nuxt.js 入门
      • 从零实现一个 Mini Vue
      • 从零实现一个简单的 VDOM 引擎
      • 从零实现一个响应式状态管理
    • sorting
      • 排序 - 归并排序
      • 排序 - 冒泡排序
      • 排序 - 选择排序
      • 排序 - 计数排序
      • 排序 - 插入排序
    • compile
      • Compiler and Interpreter
      • Just-In-Time (JIT) Compilers
      • 编译流程
    • others
      • 什么是上下文无关语法
      • 如何在终端打印出有颜色的字
    • dev-ops
      • github-actions
        • GitHub Action 简介
        • GitHub Actions for CI
    • workflow
      • 用 Node 写一个 cli
      • 如何规范 git commit 信息
      • 如何监听 git hooks
      • 如何规范代码风格 - prettier
      • 如何发布一个 npm package
      • 如何规范代码质量 - eslint
    • design-pattern
      • 代理模式
      • 单例模式
      • 策略模式
    • security
      • 点击劫持
      • CSP 内容安全策略
    • javascript
      • 尾调用优化
      • 4种常见的内存泄漏及解决方法
    • unit-test
      • Test Vuejs Application - Chapter 2
      • Test Vuejs Application - Chapter 1
      • Vue Unit Test Intro
    • performance
      • HTTP 缓存
      • 如何优化图片资源
Powered by GitBook
On this page
  • commit message
  • commit message 规范
  • commitlint
  • husky + commitlint

Was this helpful?

  1. articles
  2. workflow

如何规范 git commit 信息

commit message

每次 git commit 我们都要写 commit message(提交说明)。

如果一行信息足够了,可以执行 git commit -m 'hello world。

如果想要输入更多信息,可以执行 git commit 调出编辑器填入多行信息。

理论上 commit message 写什么都行,不过为了项目的可维护性,规范还是要有的。

commit message 规范

社区有很多规范,这里只列举 commit 的类型:

  1. feat: 新特性

  2. fix: 修复 bug

  3. style: 关于代码风格的修改(注意不是 CSS style)

  4. refactor: 重构

  5. test: 测试相关的代码

  6. docs: 文档相关

  7. chore: 构建过程或者辅助工具的变动

commitlint

当然,靠自觉来遵守规范是不太现实的,所以,还是用工具吧。commitlint 就是一个用来检查 commit message 是否符合规范的工具。

安装

第一步:安装 commitlint cli

npm i -D @commitlint/cli
npm i -D @commitlint/config-conventional

配置

// commitlint.config.js
module.exports = {
    // 指定要用的规范
    extends: ['@commitlint/config-conventional'],
};

使用

npx commitlint --from HEAD~1 --to HEAD --verbose
  • 检查上一次 commit 的信息是否符合规范。

当然,这没什么 🥚 用。我们要的是在 commit 前就检查信息是否符合规范,如果不符合就阻止他提交。

husky + commitlint

配置

{
    "hooks": {
        // 在提交 commit 信息的时候运行 commitlint 命令
        "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
}
Previous用 Node 写一个 cliNext如何监听 git hooks

Last updated 4 years ago

Was this helpful?

第二步:安装规范,这里安装的是 config-conventional,也可以选择

已经介绍过 husky 是干什么的了。

其他规范
这里
https://dev.to/talohana/husky-and-commitlint-for-clean-git-log-44be
https://www.freecodecamp.org/news/writing-good-commit-messages-a-practical-guide/