git push被拒绝_规范git项目提交并自动生成项目commit log

commit message 是开发的日常操作, 好的 log 不仅有助于他人 review, 还可以有效的输出 CHANGELOG, 对项目的管理实际至关重要, 但是在平时工作时,只依赖大致的开发规范和自觉,很难形成一种普遍约束。而通过本文,对项目进行一些基础配置,让开发者在提交时可以自动对提交作出规范

1,项目效果

代码提交

7f39f2f96f76b9a51c1a8ead0cbaa5f2.png


2,自动生成commit 日志

2395a5b7ad79d6742355ea2331746c14.png

2,配置

依赖包

npm i vue-cli-plugin-commitlint commitizen commitlint conventional-changelog-cli husky -D

配置package.json

{
  "scripts": {
    "log": "conventional-changelog --config ./node_modules/vue-cli-plugin-commitlint/lib/log -i CHANGELOG.md -s -r 0",
    "cz": "npm run log && git add . && git cz"
  },
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
  },
  "config": {
    "commitizen": {
      "path": "./node_modules/vue-cli-plugin-commitlint/lib/cz"
    }
  }
}

配置文件commitlint.config.js

module.exports = {
  extends: ['./node_modules/vue-cli-plugin-commitlint/lib/lint']
};

使用:

npm run cz  # git add . && git commit -m 'feat:(xxx): xxx' 
npm run log # 生成 CHANGELOG 

官方文档:

vue-cli-plugin-commitlint​www.npmjs.com
accfe30592ca78d5cba1ad3f805bed5b.png

3,各个包的作用解释

根据上面的配置,已经可以给项目配置提交的规范了。如果只是想应用,那么后面的各个包的功能解释部分可以选看。

  1. husky
  2. commitizen
  3. commitlint
  4. conventional-changelog-cli

husky: git命令时,自定义指定一些动作

// package.json
{
  "husky": {
    "hooks": {
      "pre-commit": "npm test",
      "pre-push": "npm test",
      "...": "..."
    }
  }
}
// commit之前会走 test
// push之前会走 test

commitlint

可以帮助我们 lint commit messages, 如果我们提交的不符合指向的规范, 直接拒绝提交, 比较狠.

commitizen

我们需要借助它提供的 git cz 命令替代我们的 git commit 命令, 帮助我们生成符合规范的 commit message

conventional-changelog-cli

根据git的metadata生成changelog

所以,回看一下刚才的package.json

{
  "scripts": {
    "log": "conventional-changelog --config ./node_modules/vue-cli-plugin-commitlint/lib/log -i CHANGELOG.md -s -r 0",
    "cz": "npm run log && git add . && git cz"
  },
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
  },
  "config": {
    "commitizen": {
      "path": "./node_modules/vue-cli-plugin-commitlint/lib/cz"
    }
  }
}

当输入yarn cz时,

0, 首先生成log

1,走命令git cz。生成commit message

2,husky检查commit-msg: commitlint -E HUSKY_GIT_PARAMS

3, 校验完成后,自动提交

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值