首页 > 其他分享 >git 配置commit-msg

git 配置commit-msg

时间:2023-04-27 13:12:12浏览次数:36  
标签:git -- husky msg commit config commitlint

git 配置commit-msg

# 安装husky
npm install husky -D
# 设置运行脚本并运行
npm set-script prepare "husky install"
npm run prepare

# 安装commitlint 根据操作系统选一种
# Install and configure if needed
npm install --save-dev @commitlint/{cli,config-conventional}
# For Windows:
npm install --save-dev @commitlint/config-conventional @commitlint/cli

# 添加hooks及赋权
npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "$1"'
chmod a+x .husky/commit-msg

# 生成commitlint.config.js
# Configure commitlint to use conventional config 
echo "module.exports = { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js

在package.json中配置husky. hooks

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

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

 

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

module.exports = {
  extends: [
    "@commitlint/config-conventional"
  ],
  rules: {
    'type-enum': [2, 'always', [
     "build", // 编译相关的修改,例如发布版本、对项目构建或者依赖的改动         "feat", // 新功能         "fix", // 修补bug         "docs", // 文档修改         "style", // 代码格式修改, 注意不是 css 修改         "refactor", // 重构         "perf", // 优化相关,比如提升性能、体验         "test", // 测试用例修改         "revert", // 代码回滚         "ci", // 持续集成修改         "config", // 配置修改         "chore", // 其他改动
     ]],
    '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的值。
具体配置项参考其官方文档

 

正确的例子

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

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

 

标签:git,--,husky,msg,commit,config,commitlint
From: https://www.cnblogs.com/UnfetteredMan/p/17358626.html

相关文章

  • 配置.husky和commitlint以及Eslint
    代码规范ESLint+Prettier(项目是基于uniapp+vue3+ts)无脑执行以下操作,让你在vue3+ts的项目中愉快的使用eslint和prettier。npminstalleslintprettier--save-devnpminstalleslint-config-prettiereslint-plugin-prettiereslint-plugin-vue--save-devnpminstall......
  • 合并两个git仓库的不同分支
    场景说明:在A仓库开发,在某一时刻因为一些原因,将A仓库copy为B仓库继续开发,现在需要将B仓库的变更同步到A仓库,保存提交历史操作步骤如下:1.拉取干净的A仓库与B仓库到本地,目录为A和B(保留.git目录)2.将B仓库添加为A仓库的远程仓库cdAgitremoteaddrepo-B../B-这里远程的B仓......
  • gitleaks 保护以及发现安全key的工具
    gitleaks可以方便的扫描git项目,发现潜在的key泄漏问题,可以方便的集成到我们的ci/cd中说明对于需要发现代码中安全key的问题,gitleaks是一个值得使用的工具参考资料https://github.com/gitleaks/gitleakshttps://gitleaks.io/......
  • git_note
    git常用操作命令:1.创建本地仓库,首先点进一个仓库文件夹,右键GitBashHere2.gitinit进入初始化,自动创建.git隐藏文件夹3.gitadd.意思是将文件夹里的所有文件放入暂存区4.gitcommit-m"阿巴阿巴"意思是进行提交,引号里的部分是对这次提交的备注5.git......
  • git
    gitstatus查看文件是否被跟踪红色就是没有没有就gitadd.绿色就代表放入暂存区gitcommit-m‘描述信息’生成ssh,ssh-keygen命令中间无空格$ssh-keygen-trsa执行过命令之后,到系统盘Users目录(C:\Users\电脑用户名.ssh\),查看生成的ssh文件。这里在打开ssh文......
  • mac改变文件权限git识别未修改的问题
    mac改变文件权限后,gitstatus发现文件全部修改了。实际一点改变都没有:执行完修改文件权限后:sudochmod-R777你的文件夹名 npm启动提示部分文件没有权限修改权限后启动正常,但是gitstatus查看全是修改文件,对比文件却没有任何差异。最后想到应该是权限改动导致的解决方......
  • git和github的入门操作
    之前因为工作中用的都是SVN版本控制工具,没接触过git和github,现在开始深入自学Django框架技术后,看到官网推荐使用git,然后这两天网上查阅了很多文章教程,学到入门操作需要学习的点,太多的知识点要后面慢慢深入学习了。看到一个网上教程说的一段话:“如果你是一枚Coder,但是你不......
  • 关于conda在创建虚拟环境时使用env.yaml安装pip的开源git包失败的解决办法
    以下env.yaml配置为例:name:alpacachannels:-pytorch-defaultsdependencies:-python=3.8.5-pip=20.3-cudatoolkit=11.3-pytorch=2.0.0-numpy=1.19.2-pip:-datasets-loralib-sentencepiece-accelerate-bitsan......
  • gitLab数据备份、恢复和迁移
    自建的Gitlab服务器常常会因为使用时间的增长,其空间容量等硬件需求都需要升级,或者迁移至更高配置的服务器上。备份、迁移、恢复、升级过程如下一、gitlab备份备份前gitlab的项目如图所示 1.1修改仓库存储位置gitlab通过rpm包安装后,默认存储位置在/var/opt/gitlab/git-dat......
  • gitlab ssh key无法连接
    tosolveaboveissuejustchange"HostKeyVerificationStrategy"to"Acceptfirstconnection"Dashboard>ManageJenkins>ConfigureGlobalSecurity>GitHostKeyVerificationConfiguration.TheninHostKeyVerificationStr......