git提交验证规范并自动生成日志文件的方法

每次git提交信息的时候会先验证提交的格式是否符合规范,符合规范并运行eslint
两者都符合之后才可正常提交,并可以根据提交的信息自动生成日志信息。
一般是遵循 Angular Commit Message

校验commit 格式

主要使用 @commitlint/cli @commitlint/config-conventional 来校验commit是否符合规范 一般可以全局安装or本地安装

install

全局

npm install -g @commitlint/cli @commitlint/config-conventional

本地

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

如果是全局可以使用下面这条命令查看全局有没有安装成功

npm ls -g -depth=0

生成配置文件

在项目根目录下运行下面这个命令生成对应的配置文件

touch commitlint.config.js

文件内容一般可以设置如下:

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

husky

一般校验规则设置好之后会结合husky提供的钩子,在每次commit之前会先去校验,如果不符合校验规则,则提交失败
husky 继承了git下所有的钩子,需要注意在使用husky之前,先git init 一下,否则没有 .git文件,就没法继承git的钩子了
如果项目中删除了.git 文件,那需要在git init之后重新安装一下husky否则就不work了

install

npm install husky --save-dev

config

在package.json中添加配置

"husky": {
  "hooks": {
   "commit-msg": "commitlint -e $GIT_PARAMS"
  }
 }

至此,每次提交如果不符合规范就会提交失败,类似下面这种提示

commitizen

一个辅助工具,可以让我们写出一个符合规范的commit信息。
通过交互式的命令,我们可以写出符合规范的commit.可以全局安装

install

npm install -g commitizen

安装之后在需要使用git commit的地方使用git cz 代替,就会出现交互式命令行窗口,直接选择对应的选项让后填写即可
如下:


lint-staged

这个工具好像和提交没有太大关系,但一般也都会用到,所以这里顺带提一下,这个是每次提交的时候让eslint只验证自己这次所改动的代码,对于其他代码则不会去lint。
不至于每次提交都会对所有的文件呢lint.

install

npm i --save-dev lint-staged 

config

在package.json中配置下:

 "husky": {
  "hooks": {
   "pre-commit": "lint-staged",
   "commit-msg": "commitlint -e $HUSKY_GIT_PARAMS"
  }
 }

当然这里假定你的项目中有关eslint的其他配置都已近配置好了。也可以加上prettierrc去格式化代码,这里就不加了
上面的配置会在每次提交之前对所改动的代码进行lint

自动生成日志文件

主要使用到 conventional-changelog 工具来帮助我们自动生成日志文件

install

一般这种工具可以全局安装一下比较方便

npm install -g conventional-changelog

只安装上面的运行相关命令会报错,安装下对应的cli

npm install -g conventional-changelog-cli

同样可以使用下面这条命令查看是否安装成功

npm ls -g -depth=0

自动生成日志

没问题之后在项目的根目录下运行下列命令

conventional-changelog -p angular -i Changelog.md -s

当然也可以在package.json中配置成一个命令,这样就很方便

"scripts": {
  "changelog": "conventional-changelog -p angular -i Changelog.md -s"
 },

这样每次运行下面这条命令即可在项目根目录自动生成对应的日志文件

npm run changelog

当然上述的changelog.md是生成的文件名,你也可以该成自己期望的文件名

总结

总结一下用这套工具容易出错的几个地方吧。

1.一个是使用husky之前需要git init一下,如果删除了项目中的.git文件夹,虽然此时已近安装过了husky,在重新git init之后依然需要重新安装一下husky否则继承不了git的钩子,就不work

2.针对上面的第一条,有的时候按照套路来,可就是会发现会报一个这个错误
这个时候可以查看本地项目中 .git有木有hooks文件,如果没有那说明husky没有继承git,如果有的话就rm -rf .git/hooks然后重新安装下husky。这是一个closed issue

3,生成日志的时候也需要安装 conventional-changelog-cli 否则会报一个命令找不到的错误.

到此这篇关于git提交验证规范并自动生成日志文件的文章就介绍到这了,更多相关git提交验证规范内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • git log根据特定条件查询日志并统计修改的代码行数

    前言 随着年龄的增长和知识的积累,最近常常有种豁然开朗的感觉,或者对一个已经存在的事物突然有了新的认识,比如统计这个词很早就接触了,从没考虑过它是什么意思,而这篇总结的题目中用了统计一词,第一感觉应该是汇总.记录的意思,后来去查了词条定义,也确实就是类似的解释,从没有刻意去学这个词的含义,但是在每天的生活中已经潜移默化地归纳.总结出来了. 想要统计就得有数据源,而 git log 命令恰恰就能提供这个数据源,git log 本身就是一个显示日志的命令,日志记录的是代码库变化的数据,类似于描述代码

  • Python实现一个Git日志统计分析的小工具

    前言 本文介绍的是利用Python实现的一个小工具,用于分析Git commit log,获得Git Project每个成员的简单行为数据. Warning:代码量不能代表程序员能力水平! 启动参数 共5个. Repo地址 Commit 起始日期 Commit 结束日期 Git仓库子目录 统计分析结果CSV文件目标路径 exec_git Git Log命令: git -C {} log --since={} --until={} --pretty=tformat:%ae --shortstat

  • 使用python分析git log日志示例

    用git来管理工程的开发,git log是非常有用的'历史'资料,需求就是来自这里,我们希望能对git log有一个定制性强的过滤.此段脚本就是在完成这种类型的任务.对于一个repo所有branch中的commit,脚本将会把message中存在BUG ID的一类commits给提取整理出来,并提供了额外的search_key, 用于定制过滤. 复制代码 代码如下: # -*- coding: utf-8 -*-# created by vince67 Feb.2014# nuovince@gm

  • Git的使用规范流程总结

    下面是ThoughtBot 的Git使用规范流程.我从中学到了很多,推荐你也这样使用Git. 第一步:新建分支 首先,每次开发新功能,都应该新建一个单独的分支. # 获取主干最新代码 $ git checkout master $ git pull # 新建一个开发分支myfeature $ git checkout -b myfeature 第二步:提交分支commit 分支修改后,就可以提交commit了. $ git add --all $ git status $ git commit

  • 总结PHP代码规范、流程规范、git规范

    代码规范.git规范.teambition规范.yii规范 1. 命名规范 (1).变量命名规范 1.变量使用驼峰命名法 禁止使用拼音或者拼音加数字 2.变量也应具有描述性,杜绝一切拼音.或拼音英文混杂的命名方式 3.变量包数字.字母和下划线字符,不允许使用其他字符,变量命名最好使用项目 中有据可查的英文缩写方式, 尽可以要使用一目了然容易理解的形式: 4.变量以字母开头,如果变量包多个单词,首字母小写,当包多个单词时,后面 的每个单词的首字母大写.例如 :$itSports 5.变量使用有效命

  • git提交验证规范并自动生成日志文件的方法

    每次git提交信息的时候会先验证提交的格式是否符合规范,符合规范并运行eslint 两者都符合之后才可正常提交,并可以根据提交的信息自动生成日志信息. 一般是遵循 Angular Commit Message 校验commit 格式 主要使用 @commitlint/cli @commitlint/config-conventional 来校验commit是否符合规范 一般可以全局安装or本地安装 install 全局 npm install -g @commitlint/cli @commit

  • Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法

    本文实例讲述了Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法.分享给大家供大家参考,具体如下: phpunit下载网站 http://www.phpunit.cn/ 一.安装PHPUnit 1.选择版本 我用的是php版本是5.6.25 所以我选择的是PHPUnit 5.7 2.安装过程 ① 为 PHP 的二进制可执行文件建立一个目录,例如 C:\bin ② 将 ;C:\bin 附加到 PATH 环境变量中  [将 php的目录 ;E:\wamp64\bin

  • C#实现保存文件时重名自动生成新文件的方法

    本文实例讲述了C#实现保存文件时重名自动生成新文件的方法.分享给大家供大家参考.具体如下: 将一个文档保存为 a.txt 时,发现此文件已经存在,则自动保存为 a(1).txt /// <summary> /// Generates a new path for duplicate filenames. /// </summary> /// <param name="path">The path.</param> /// <retu

  • Node.js 在本地生成日志文件的方法

    平常都使用console来打印 node 脚本执行时需要看到的信息,但这些信息也就只能在控制台查看.假如你希望将打印的信息输出到日志(log)文件查看的话,那就往下看看吧. 1.前言 期望: 每次运行脚本时,生成log日志存储到本地 每次执行脚本,之前日志内容清空 需要了解的知识点: fs new console.Console 2.什么是 fs 使用 node.js 对日志进行存储,就一定会对本地文件的增删改查,那么我们需要用到fs. 如果你写过 node,想必你应该见过它fs,fs全称为文件

  • Git Commitizen提交规范化自动生成changelog文件

    目录 背景介绍 Commitizen 介绍 自动产生CHANGELOG 背景介绍 我们在使用一个比较厉害的框架或者库的时候,经常可以看到 CHANGELOG.md,维护版本更新内容. 很多时候,特别是在你开源自己的一个工具或库时,这种版本更新内容是非常有必要的,如果用户使用了你的轮子,连更新内容都不知道,试问你敢用吗? 那么这些都是怎么写的呢?每次发版都要手动记录吗?显然不是,这些都是靠提条记录生成的. 比如我们在 github 上随便找一个库:https://github.com/vuepre

  • springboot+mybatis通过实体类自动生成数据库表的方法

    前言 本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表. 首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</ve

  • VsCode中ctrl+s后会在当前目录下自动生成dist目录的方法

    在VsCode中ctrl+s后会在当前目录下自动生成dist目录 解决办法:关闭compile-hero插件 在设置中搜索compile-hero插件 关闭所有自动生成dist目录的选项(如下图所示) PS:下面看下vue项目Ctrl+s vscode代码自动格式化 前言 多人开发vue项目,代码风格形式不一 vscode保存代码,自动按照eslint规范格式化代码设置(vscode最新版配置) vscode插件 首先vscode需要装一些vscode插件 ESLint.Vetur.Pretti

  • MybatisPlus如何自动生成映射文件

    目录 如何自动生成映射文件 一.pom.xml 二.MybatisPlusUtil工具类 自动映射autoMappingBehavior与mapUnderscoreToCamelCase autoMappingBehavior mapUnderscoreToCamelCase 如何自动生成映射文件 一.pom.xml pom.xml添加以下依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId> <ar

  • 详解python脚本自动生成需要文件实例代码

    python脚本自动生成需要文件 在工作中我们经常需要通过一个文件写出另外一个文件,然而既然是对应关系肯定可以总结规律让计算机帮我们完成,今天我们就通过一个通用文件生成的python脚本来实现这个功能,将大家从每日重复的劳动中解放! 定义一个函数 def produceBnf(infilename,outfilename): List=[] with open(infilename,'r') as inf: for line in inf.readlines(): List.append(re.

  • PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)

    根据 Mysql 里的字段 自动生成 类文件: 但需要导入: require_once ./db/ez_sql_core.php;require_once ./db/ez_sql_mysql.php; 帮助文档:http://jvmultimedia.com/docs/ezsql/ez_sql_help.htm 上图 : 核心代码: 复制代码 代码如下: <?php class db{ /******************************************************

随机推荐