一、前置条件

  为了更好地 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使用的更多相关文章

  1. Git代码提交规范

    1. 引言 思想,因人而异,难以重复 写代码时,每个人的习惯是不一样的,所以,引入了代码规范,为了省力,引入了自动格式化代码工具,前端工程中比较典型的自动格式化代码工具如:Prettier · Opi ...

  2. Git 项目提交新仓库

    提示:进入项目文件操作 步骤: 1.git init   ----------初始化git仓库 2.git remote add origin 你的项目地址  ------------------如: ...

  3. Git 日志提交规范

    Commit messages的基本语法 当前业界应用的比较广泛的是 Angular Git Commit Guidelines 具体格式为: <type>: <subject> ...

  4. Git Commit 提交规范

    写好 Commit message 好处多多: 1.统一团队Git commit 日志风格 2.方便日后 Reviewing Code 3.帮助我们写好 Changelog 4.能很好的提升项目整体质 ...

  5. 将本地已经存在的非git项目提交到github上的空仓库

    一.本地项目执行操作 1.在本地项目目录下初始化git仓库 git init 2.将本地项目下工作区的所有文件添加到git版本库的暂存区中 git add . (可以创建.gitignore文件忽略不 ...

  6. Git 项目提交代码及一些常用命令

    在dev_ysg分支 : git add . //把项目添加到仓库 git commit -m "test" // 提交加注释 git push //推到dev_ysg分支上去 g ...

  7. git项目提交后执行添加忽略操作

    需要删除文件暂存区中的忽略文件 git rm -r --cached 需要忽略的已提交文件或文件夹 eg: git rm -r --cached target/

  8. 如何规范git commit提交

    相信很多人使用SVN.Git等版本控制工具时候都会觉得每次提交都要写一个注释有什么用啊?好麻烦,所以我每次都是随便写个数字就提交了,但是慢慢的我就发现了,如果项目长期维护或者修改很久之前的项目,没有一 ...

  9. 前端规范之Git提交规范(Commitizen)

    代码规范是软件开发领域经久不衰的话题,几乎所有工程师在开发过程中都会遇到或思考过这一问题.而随着前端应用的大型化和复杂化,越来越多的前端团队也开始重视代码规范.同样,前段时间,笔者所在的团队也开展了一 ...

  10. 前端规范之Git工作流规范(Husky + Comminilint + Lint-staged)

    代码规范是软件开发领域经久不衰的话题,几乎所有工程师在开发过程中都会遇到或思考过这一问题.而随着前端应用的大型化和复杂化,越来越多的前端团队也开始重视代码规范.同样,前段时间,笔者所在的团队也开展了一 ...

随机推荐

  1. 后端开发学习敏捷需求-->干系人分析与识别

    干系人分析与识别 5W1H 干系人分析与识别 1. 干系人是什么 直接或者间接影响专题,以及被专题影响的人和组织,用户也是属于干系人,是产品直接或者间接的使用者 又叫利益相关者,指积极参与专题或者在专 ...

  2. 数字名片工具 BBlog:使用一个链接,快速创建和分享你的信息主页和数字花园

    数字名片 BBlog:使用一个链接,快速创建和分享你的信息主页和数字花园 随着移动互联网技术的快速发展,数字名片产品已成为现代社交和网络营销的重要工具.数字名片可以帮助个人和企业在各种场合中展示和分享 ...

  3. RabbitMq高级特性之TTL 存活时间/过期时间 通俗易懂 超详细 【内含案例】

    RabbitMq高级特性之TTL 存活时间/过期时间 介绍 RabbitMQ支持消息的过期时间, 在消息发送时可以进行指定 RabbitMQ支持队列的过期时间, 从消息入队列开始计算, 只要超过了队列 ...

  4. 微服务全链路跟踪:grpc集成zipkin

    微服务全链路跟踪:grpc集成zipkin 微服务全链路跟踪:grpc集成jaeger 微服务全链路跟踪:springcloud集成jaeger 微服务全链路跟踪:jaeger集成istio,并兼容u ...

  5. rk3568 | rk平台GPIO冲突检测小技巧

    上一篇我们讲解了如何编写gpio驱动,但是实际操作中,经常发现gpio引脚被占用的情况发生,那么本篇文章就详细讲解rxw平台下如何快速定位gpio复用问题以及如何解决. 一.GPIO寄存器查找 要想查 ...

  6. 仅花一天时间,开发者重制 32 年前经典 Mac 应用!

    导读:在这个快节奏的技术世界里,重温过去并从中汲取灵感总是一件有趣的事情.今天要介绍的是一款仅用一天时间重制的经典 Macintosh 应用--Stapler.这款应用最初发布于1992年,现在由一位 ...

  7. Blazor开发框架Known-V2.0.9

    V2.0.9 Known是基于Blazor的企业级快速开发框架,低代码,跨平台,开箱即用,一处代码,多处运行.本次版本主要是修复一些BUG和表格页面功能增强. 官网:http://known.puma ...

  8. WPF 模仿前端大佬写一个Hover效果

    先看一下效果吧: 原博主的地址:[动画进阶]神奇的卡片 Hover 效果与 Blur 的特性探究 - ChokCoco - 博客园 (cnblogs.com) 原效果是一个css效果,我们采用WPF的 ...

  9. Vue elementui 进度条随机颜色

    项目要求显示进度条,而且进度条的颜色不能重复,所以就有了随机进度条的想法. 实现的最终效果: <el-table-column header-align="center" a ...

  10. Python自动复制Excel数据:将各行分别重复指定次数

      本文介绍基于Python语言,读取Excel表格文件数据,并将其中符合我们特定要求的那一行加以复制指定的次数,而不符合要求的那一行则不复制:并将所得结果保存为新的Excel表格文件的方法.   这 ...