git commit 规范

作者: 前端大飞 | 来源:发表于2018-01-12 19:09 被阅读169次

采用 Angular 的 commit 规范

不写 commit message 不允许提交代码,具体的规范格式,可以查看github。

commit 工具流

commitizen

项目内安装 commitizen,安装cz-conventional-changelog

npm i commitizen cz-conventional-changelog --save-dev

然后在package.json内手动配置如下内容:

"config": {
  "commitizen": {
    "path": "./node_modules/cz-conventional-changelog"
  }
}

或者通过全局安装 commitizen

npm i -g commitizen

然后,在项目目录里,运行下面的命令,使其支持 Angular 的 Commit message 格式。

commitizen init cz-conventional-changelog --save --save-exact

也会生成上面的那段config配置!!!

添加script脚本commit命令

"commit": "git-cz",

以后就可以通过npm run commit命令进行提交commit信息了。

yorkie

yorkie package用来检查 commit message 是否符合规范,这个其实是vue作者尤大大在forkHusky包的基础上做了改变,由原来的通过script的形式,改为了通过gitHooks配置的形式。

1、安装 yorkie package:

npm i yorkie --save-dev

2、配置gitHooks:

// package.json

{
  "gitHooks": {
    "pre-commit": "npm run lint",
    "commit-msg": "node scripts/verify-commit-msg.js"
  }
}
  1. 添加验证msg格式的verify-commit-msg.js(参考vue)
const chalk = require('chalk')
const msgPath = process.env.GIT_PARAMS
const msg = require('fs').readFileSync(msgPath, 'utf-8').trim()

const commitRE = /^(revert: )?(feat|fix|docs|style|refactor|perf|test|workflow|ci|chore|types)(\(.+\))?: .{1,50}/

if (!commitRE.test(msg)) {
  console.log()
  console.error(
    `  ${chalk.bgRed.white(' ERROR ')} ${chalk.red(`invalid commit message format.`)}\n\n` +
    chalk.red(`  Proper commit message format is required for automated changelog generation. Examples:\n\n`) +
    `    ${chalk.green(`feat(compiler): add 'comments' option`)}\n` +
    `    ${chalk.green(`fix(v-model): handle events on blur (close #28)`)}\n\n` +
    chalk.red(`  See .github/COMMIT_CONVENTION.md for more details.\n`) +
    chalk.red(`  You can also use ${chalk.cyan(`npm run commit`)} to interactively generate a commit message.\n`)
  )
  process.exit(1)
}

通过这种方式的好处是自由定制信息。

当然,也可以通过已有的包commitlint进行开发(注意,老的推荐库validate-commit-msg已经弃用),这个包的使用很简单,github仓库上有清晰的描述.

生成 change log

如果你的提交信息都符合上述的规范,那么这些信息就会出现在 change log 里面。

只有 typefeatfixcommit 会出现在 change log 中,其他的不会出现,当然你也可以自己自定义。

如何生成 change log

安装依赖 npm i conventional-changelog -S

在 package.json 中配置下面的命令:

{
  "script": {
      "version": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0"
   }
}

然后运行命令:npm run versionCHANGELOG.md 文件就会出现在你的项目根目录下面,这样每次version变化发新的代码版本时,就可以直接通过该方式生成对应的changelog页,而不需要手动编辑,当然,生成changelog的message信息需要注意简介清晰,表达清楚。

参考

相关文章

  • 使用 git hook 规范 Android 项目

    引言 本文所说的『规范』包含两个部分 git commit 是注释的规范 git commit 时对代码规范的检查...

  • git commit规范

    git commit规范 git-commit规范 在多人协作项目中,如果代码风格统一、代码提交信息的说明准确,那...

  • gitflow 规范及工具整理

    gitflow 进阶规范 git cz 通过工具 git-cz 规范 git commit 提交信息。 使用 gi...

  • GIT 规范

    git 规范 git 规范一般包括两点:分支管理规范和 git commit 规范。 分支管理规范 一个项目可以创...

  • git操作

    git规范 Git 使用规范流程 团队中的 Git 实践 Git: 教你如何在Commit时有话可说 Git工作流...

  • Git Commit message(Angular规范)

    Git Commit message(Angular规范) Commit message 的格式 1. Heade...

  • git commit 提交规范(优化)

    git commit 提交模板和规范 Git每次提交代码,都要写 Commit message(提交说明),否则就...

  • 用 git 钩子,检测代码规范性(eslint、standard

    最终实现效果说明: 用 git commit 提交代码之前,利用 pre-commit git 钩子,实现代码规范...

  • git提交规范

    git的规范和相关科普知识 git commit 的规范要求(参考Angular团队) message格式如下: ...

  • 我的git学习日志

    关于提交规范(git commit conventions) 参考文献: 你可能会忽略的 Git 提交规范Comm...

网友评论

    本文标题:git commit 规范

    本文链接:https://www.haomeiwen.com/subject/ugzfoxtx.html