Git项目提交规范结合Husky + commitlint使用
一、前置条件
为了更好地 GIT 提交,加入了代码提交规范和规范校验,优雅的提交;
方便团队协作和快速定位问题,采取 Husky + commitlint 辅助项目做约定。
npm install --save-dev husky
For windows install commintlint:
npm install --save-dev @commitlint/config-conventional @commitlint/cli
二、配置
// 命令生成配置文件 commitlint.config.js 或 .commitlintrc.js
echo "module.exports = {extends: ['@commitlint/config-conventional']};" > commitlint.config.js
package.json 添加commitlint配置项:
"husky": {
"hooks": {
"pre-commit": "npm run lint",
"commit-msg": "commitlint -e $HUSKY_GIT_PARAMS"
}
}
husky是git hook工具,文件格式 .huskyrc,它能帮你阻挡不好的代码提交和推送;
(pre-commit 钩子命令用于提交前运行检查,看项目情况决定要不要使用,
"pre-commit": "lint-staged" 扩展使用lint-staged库辅助,或者是自定义lint,
"lint": "eslint src --fix --ext .ts,.tsx " )

或者创建文件 .lintstagedrc 
(如果无pre-commit限制,使用 --no-verify eg: git commit --no-verify -m 'feat: 增加 xxx 功能' )
三、定制提交规范
1.提交格式(冒号后面有空格):
'<type>[scope]: <subject>'
// eg: git commit -m 'feat: 增加什么功能'
type|subject 必选,scope 可选;
scope 可省略,用于说明commit的影响范围和模块;
subject 是commit的目的简短描述,可以配置最大长度限制,配置72字符;
2.常用type类型:
|
'build' |
项目构建的提交(eg:webpack配置等) |
| 'upd' | 更新某个功能 |
| 'feat' | 新功能(feature) |
| 'fix' | 修补bug |
|
'refactor' |
重构代码(不是新增也不是修补代码) |
| 'style' | 不影响程序逻辑的改动(eg:格式) |
| 'perf' | 性能优化 |
| 'revert' | 回滚到某个更早的提交 |
|
'docs' |
文档更新 |
|
'chore' |
其他类型(eg:构建过程或辅助工具的变化) |
|
'test' |
增加测试用例 |
3. commitlint config rules
level: 0为disable,1为warning,2为error;
第二位: 'always'或'never';
第三位: 值
4.配置图如下:

四、范例
终端(开发分支)步骤:
git add . -> git commit –no-verify –m ‘upd: 更新某个功能’-> git push
github desktop /vscode git管理/TortoiseGit客户端:
暂存更改 -> 描述(upd: 更新某个功能) commit -> push/fetch

Git项目提交规范结合Husky + commitlint使用的更多相关文章
- Git代码提交规范
1. 引言 思想,因人而异,难以重复 写代码时,每个人的习惯是不一样的,所以,引入了代码规范,为了省力,引入了自动格式化代码工具,前端工程中比较典型的自动格式化代码工具如:Prettier · Opi ...
- Git 项目提交新仓库
提示:进入项目文件操作 步骤: 1.git init ----------初始化git仓库 2.git remote add origin 你的项目地址 ------------------如: ...
- Git 日志提交规范
Commit messages的基本语法 当前业界应用的比较广泛的是 Angular Git Commit Guidelines 具体格式为: <type>: <subject> ...
- Git Commit 提交规范
写好 Commit message 好处多多: 1.统一团队Git commit 日志风格 2.方便日后 Reviewing Code 3.帮助我们写好 Changelog 4.能很好的提升项目整体质 ...
- 将本地已经存在的非git项目提交到github上的空仓库
一.本地项目执行操作 1.在本地项目目录下初始化git仓库 git init 2.将本地项目下工作区的所有文件添加到git版本库的暂存区中 git add . (可以创建.gitignore文件忽略不 ...
- Git 项目提交代码及一些常用命令
在dev_ysg分支 : git add . //把项目添加到仓库 git commit -m "test" // 提交加注释 git push //推到dev_ysg分支上去 g ...
- git项目提交后执行添加忽略操作
需要删除文件暂存区中的忽略文件 git rm -r --cached 需要忽略的已提交文件或文件夹 eg: git rm -r --cached target/
- 如何规范git commit提交
相信很多人使用SVN.Git等版本控制工具时候都会觉得每次提交都要写一个注释有什么用啊?好麻烦,所以我每次都是随便写个数字就提交了,但是慢慢的我就发现了,如果项目长期维护或者修改很久之前的项目,没有一 ...
- 前端规范之Git提交规范(Commitizen)
代码规范是软件开发领域经久不衰的话题,几乎所有工程师在开发过程中都会遇到或思考过这一问题.而随着前端应用的大型化和复杂化,越来越多的前端团队也开始重视代码规范.同样,前段时间,笔者所在的团队也开展了一 ...
- 前端规范之Git工作流规范(Husky + Comminilint + Lint-staged)
代码规范是软件开发领域经久不衰的话题,几乎所有工程师在开发过程中都会遇到或思考过这一问题.而随着前端应用的大型化和复杂化,越来越多的前端团队也开始重视代码规范.同样,前段时间,笔者所在的团队也开展了一 ...
随机推荐
- 知攻善防Web1应急靶机笔记--详解
知攻善防Web1应急靶机笔记 概述 这是一台知攻善防实验室的应急响应靶机,方便大家练习一下应急响应的流程和操作. 靶机的前景概述: 前景需要: 小李在值守的过程中,发现有CPU占用飙升,出于胆子小,就 ...
- 什么是ARM中的SP(堆栈)和LR?
LR是用于保存函数调用的返回地址的link register. SP是堆栈指针.堆栈通常用于在函数调用中保存"automatic"变量和上下文/参数.从概念上讲,您可以将" ...
- 让你的C程序,可以自动更新版本信息
一.软件管理 稍微上点规模的软件开发往往周期都非常长, 中间会产生很多临时版本, 这些临时版本往往会有各种各样的bug, 由于项目参与的人员众多.水平参差不齐, 软件分支众多.功能复杂, 经常会有各种 ...
- Linux驱动 | 从0写一个设备树节点实例
一.前言 设备树是每一个Linux驱动工程师都必须掌握的一个知识点,有很多之前做单片机的朋友刚接触Linux驱动时,会一脸懵! 其实设备树的使用并没有大家想像的那么复杂,对于大部分工程师来说,只要会修 ...
- k8s手动安装
一.主节点安装 设置主机名hostnamectl set-hostname masterhostnamectl set-hostname node01 修改hosts文件vim /etc/hosts1 ...
- ES7.5.2索引生命周期管理(附操作示例)
一.前言 es可以用来存储日志,一般日志存储只是短期保存,超过一定时间日志要是能自动删除最好,这样保证索引文档不会过多,查询时效性也能得到保证.本文参考的官网地址是:https://www.elast ...
- Azure 入门系列 (第五篇 Azure Storage)
本系列 这个系列会介绍从 0 到 1 搭建一个 Web Application 的 Server. 间中还会带上一些真实开发常用的功能. 一共 6 篇 1. Virtual Machine (VM) ...
- 深入理解JNDI注入—RMI/LDAP攻击
目录 前言 JNDI 注入简单理解 透过Weblogic漏洞深入理解 RMI与LDAP的区别 JNDI+RMI 漏洞代码触发链 lookup触发链 JNDI+LDAP 前言 本篇文章初衷是在研究log ...
- Java Pom两个模块需要互相引用怎么办
1. Java POM模块化是什么 在Java项目中,特别是在使用Maven作为构建工具时,"POM模块化"是一个重要的概念,它指的是将大型项目拆分成多个更小.更易于管理的模块(或 ...
- Nuxt Kit API :路径解析工具
title: Nuxt Kit API :路径解析工具 date: 2024/9/22 updated: 2024/9/22 author: cmdragon excerpt: 摘要:本文介绍了Nux ...