通常情况下,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作。但是在日常开发中,大家的commit message都比较随意,中英文混合使用的情况有时候很常见,这就导致后续代码维护成本比较大。
基于这些问题,可以通过husky和commitlint来规范commit的格式,来减小代码维护成本。

Angular规范是目前使用最广的写法,比较合理和系统化,并且有配套的工具(VSCode插件git-commit-plugin就非常好用)

commit message介绍

commit message格式

<type>(<scope>): <subject>

type(必须)

用于说明 commit 的类别,只允许使用下面7个标识。

  • feat:新功能(feature)
  • fix:修补bug
  • docs:文档(documentation)
  • style: 格式(不影响代码运行的变动)
  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)
  • test:增加测试
  • chore:构建过程或辅助工具的变动

scope(可选)

scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。

subject

subject是 commit 目的的简短描述,不超过50个字符。

注意事项:

  • 以动词开头,使用第一人称现在时,比如change,而不是changedchanges
  • 第一个字母小写
  • 结尾不加句号(.)

安装到项目

husky

  1. 安装 husky npm install husky --save-dev

  2. 初始化 husky npx husky install

  3. 设置项目 install 自动初始化 husky ,在 package.json 添加脚本

    // package.json
    {
    "scripts": {
    "prepare": "husky install"
    }
    }

hook

新增 hook 勾子命令,项目中使用 commit-msg 勾子来校验 commit message 是否符合规范: npx husky add .husky/commit-msg "npx --no-install commitlint --edit $1"

运行上面命令后,将自动在 .husky  文件夹下面新增对应的勾子文件,如下

如果运行完新增勾子函数如果出现如下消息

可以先执行 npx husky add .husky/commit-msg,然后手动去commit-msg文件里添加npx --no-install commitlint --edit $1

commitlint

  1. 安装 @commitlint/config-conventional @commitlint/cli

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

  2. 新增配置文件 .commitlintrc.js

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

项目可以怎么规范Git commit ?的更多相关文章

  1. 规范git commit提交记录和版本发布记录

    在开发过程中我们一般都会用到git管理代码,在git commit提交代码时我们一般对git commit message随便写点简单的描述,可是随着项目参与人数的增多,发现提交的commit记录越来 ...

  2. 如何规范git commit提交

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

  3. 使用Gitmoji进行git commit的快速查阅指南

    目录 前言 1. 查阅方法:脚本法 1.1 利用 VS Code 编辑多行文本快速写脚本文件 1.2 给脚本添加可执行权限 1.3 修改环境变量 PATH 使脚本在所有路径下都可以执行(全局执行) 2 ...

  4. [软软软]技术博客-Commitizen优化git commit

    工具介绍 commitizen/cz-cli是一个规范git commit的工具,使用它代替git commit能够方便有效地写好提交的log,使得团队项目的版本信息更清晰. 安装 (全局安装) np ...

  5. git第四节----git commit message

    @git  commit message 什么是git commit message :git commit -m '每次提交时编辑的内容' git commit message的好处:      1 ...

  6. Git commit message和工作流规范

    目的 统一团队Git commit日志标准,便于后续代码review,版本发布以及日志自动化生成等等. 统一团队的Git工作流,包括分支使用.tag规范.issue等 Git commit日志参考案例 ...

  7. git commit的规范

    https://www.yuque.com/fe9/basic/nruxq8#6c228def 制定一个 git commit 信息的提交规范是开发团队工作流必不可少的环节.试想一下,如果查看主分支上 ...

  8. vue项目在git commit时,使用eslint检测

    用vue-cli3创建新项目可以自定义配置,选择eslint,所以eslint不需要配置, 项目根目录下面生成一个 .eslintrc.js文件,里面可以自定义配置eslint规则 现在在开发的时候, ...

  9. Git Commit 提交规范

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

随机推荐

  1. HashMap(1.8)源码学习

    一.HashMap介绍 1.哈希表(hash table) 在哈希表中进行添加,删除,查找等操作,时间复杂度为O(1) 存储位置 = f(关键字) 其中,这个函数f一般称为哈希函数,这个函数的设计好坏 ...

  2. c++ 动态内存 动态数组

    动态内存-动态数组 习题12.23 //连接字符串到动态数组 char *c = new char[20](); char a[] = "hello "; char b[] = & ...

  3. 三、Mybatis多表关联查询应用

    一对一查询 实现语句:select * from neworder o, user u where o.uid = u.id 实体Order: 接口: 配置: 测试: 一对多查询 实现语句:selec ...

  4. [Golang]一些书城项目中出现错误的原因和解决办法(二)

    跟着B站尚硅谷的GoWeb教程写书城项目,整理一下自己写的时候出现的错误和解决办法. 错误三:数据库的 cart_items 表中 total_count 始终为 0. 原因:更新购物车信息的 Upd ...

  5. CobaltStrike逆向学习系列(6):Beacon sleep_mask 分析

    这是[信安成长计划]的第 6 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 C2Profile 分析 0x02 set userwx "true" 0x03 s ...

  6. python中类似c++静态方法的一个记录

    个人学习c++出身,在后面的工作中接触到python,见到一些classmethod的字眼有点疑惑,所以进行一些记录. 都知道的是,c/c++中有着静态成员,静态方法的存在,比如: class A: ...

  7. 思迈特软件Smartbi:传统BI被“革命”,AI是BI技术未来的发展趋势

    根据IDC报告,2020年中国BI软件存量市场规模为38.2亿元,到2024年,市场规模将达到78.5亿元,未来4年整体市场年复合增长率(CAGR)为19.2%.此外,还有规模达到100亿元的增量市场 ...

  8. 【C#基础概念】 里氏转换-as/is

    里氏转换 子类可以赋值给父类.(如果有一个地方需要一个父类作为参数,我们可以给一个子类 ) 如果父类中装的是子类对象,那么可以将这个父类强转为子类对象. 创建几个类帮助我们理解: using Syst ...

  9. Oracle建表和SQL语句的增删改

    创建表 --建表语法结构: /* CREATE TABLE 表名( 字段名1 数据类型, 字段名2 数据类型 .... ); */ --建一张老师表,里面包含老师编号,老师姓名,老师联系方式,老师入职 ...

  10. Shell脚本编写登陆小程序.sh

    转至:https://www.cnblogs.com/gaohongyu/articles/12072594.html #!/bin/bash #Author:GaoHongYu #QQ:106176 ...