利用commitlint规范团队git提交信息

3 篇文章 0 订阅

有时候,团队不一定每个人都有良好的代码提交习惯,提交信息也不准确完备,不便于后续准确定位问题是由于哪次提交产生的,commitlint的出现使得代码提交被强制规范化,推荐我们在开发中为项目添加此配置。

安装husky
husky是一个git hook的管理工具,实现了大部分的git hook,有兴趣的可以自行google。一般情况下,commitlint会用在git的hook回调中,如果不想自己写githooks,那么最简单的就是和 husky一起使用。

npm install --save-dev husky

在package.json中配置husky. hooks

{
  "husky": {
    "hooks": {
      "pre-commit": "echo 准备提交",
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
      "pre-push": "echo 准备推送"
    }
  }  
}

通过HUSKY_GIT_PARAMS传递参数,-E|--env用于指向相关的编辑文件。

安装commitlint

npm install --save-dev @commitlint/config-conventional @commitlint/cli

// 或者
npm install --save-dev @commitlint/{cli,config-conventional}

根目录增加其配置文件commitlint.config.js

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

一般情况下,默认的就够用了。
当然,如果需要自定义限制这些规则,不启用默认的规则,可以把配置写的更详细

module.exports = {
  extends: [
    "@commitlint/config-conventional"
  ],
  rules: {
    'type-enum': [2, 'always', [
      'upd', 'feat', 'fix', 'refactor', 'docs', 'chore', 'style', 'revert'
     ]],
    'type-case': [0],
    'type-empty': [0],
    'scope-empty': [0],
    'scope-case': [0],
    'subject-full-stop': [0, 'never'],
    'subject-case': [0, 'never'],
    'header-max-length': [0, 'always', 72]
  }
};

rule配置说明::rule由name和配置数组组成,如:'name:[0, 'always', 72]',数组中第一位为level,可选0,1,2,0为disable,1为warning,2为error,第二位为应用与否,可选always|never,第三位该rule的值。
具体配置项参考其官方文档
 

提交注意
commitlint 的默认格式为

# 注意:冒号前面是需要一个空格的, 带 ? 表示非必填信息
type(scope?): subject
body?
footer?



正确的例子

git commit -m 'feat: 增加 xxx 功能'
git commit -m 'bug: 修复 xxx 功能'

scope 指 commit 的范围(哪些模块进行了修改)
subject 指 commit 的简短描述
body 指 commit 主体内容(长描述)
footer 指 commit footer 信息
type 指当前 commit 类型,一般有下面几种可选类型:

类型描述
build: msg主要目的是修改项目构建系统(例如 glup,webpack,rollup 的配置等)的提交
ci: msg主要目的是修改项目继续集成流程(例如 Travis,Jenkins,GitLab CI,Circle等)的提交
docs: msg文档更新
feat: msg新增功能
merge: msg分支合并 Merge branch ? of ?
fix: msgbug 修复
perf: msg性能, 体验优化
refactor: msg重构代码(既没有新增功能,也没有修复 bug)
style: msg不影响程序逻辑的代码修改(修改空白字符,格式缩进,补全缺失的分号等,没有改变代码逻辑)
test: msg新增测试用例或是更新现有测试
revert: msg回滚某个更早之前的提交
chore: msg构建过程或辅助工具的变动
rm: msg删除文件或代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Git提交代码时,我们应该遵循规范提交信息格式,以便让其他人更好地理解这次代码提交的目的和内容。通常,我们可以使用一些工具来约束开发者编写符合规范提交说明。一个常用的工具是Commitizen,它可以帮助我们生成符合规范提交信息。 为了使用Commitizen,我们首先需要在项目中安装cz-conventional-changelog包,并将其配置为Git提交时的默认工具。具体操作是在项目的package.json文件中添加以下内容: ``` "scripts": { "cm": "git-cz" }, "config": { "commitizen": { "path": "./node_modules/cz-conventional-changelog" } } ``` 然后,在我们提交代码时,可以使用以下命令替代"git commit": ``` npm run cm ``` 这样,Commitizen就会弹出一个交互式的界面,要求我们填写符合规范提交信息。通过这种方式,我们可以更好地规范我们的提交信息,提高代码审查、信息查找和版本回退的效率和可靠性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Git 提交规范](https://blog.csdn.net/fd2025/article/details/124543690)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值