我爱编程

git commit 规范

2018-05-29  本文已影响82人  喜相逢v5

使用angular + commitizen + cz-conventional-changelog 来规范git commit

目的

Git commit日志参考案例


参考链接:

总体方案

image

Git commit日志基本规范

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

对格式的说明如下:

格式要求:

# 标题行:50个字符以内,描述主要变更内容
#
# 主体内容:更详细的说明文本,建议72个字符以内。 需要描述的信息包括:
#
# * 为什么这个变更是必须的? 它可能是用来修复一个bug,增加一个feature,提升性能、可靠性、稳定性等等
# * 他如何解决这个问题? 具体描述解决问题的步骤
# * 是否存在副作用、风险? 
#
# 尾部:如果需要的化可以添加一个链接到issue地址或者其它文档,或者关闭某个issue。

Git分支与版本发布规范

如何接入?

接入参考commit-message-test-project项目。具体步骤如下:

 {
    "name": "application-name",
    "version": "0.1.0",
    "scripts": {
      "commitmsg": "validate-commit-msg",
      "commit": "git-cz ",
      "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0"
    },
    "devDependencies": {
      "commitizen": "^2.3.0",
      "validate-commit-msg": "^2.11.1",
      "conventional-changelog-cli": "^1.2.0",
      "husky": "^0.13.1"
    }
 }
{
  "helpMessage": "\nPlease fix your commit message (and consider using https://www.npmjs.com/package/commitizen)\n",
  "types": [
    "feat",
    "fix",
    "docs",
    "style",
    "refactor",
    "perf",
    "test",
    "chore",
    "revert"
  ],
  "warnOnFail": false,
  "autoFix": false
}

接入后的Git commit操作流程

  $ git checkout -b feature_infinite_load    # 切换到一个feature分支或者bug fix分支
  $ git add .                                
  $ git commit                               # 此处不要加任何参数,比如-m

如下图所示:

image
  $ git push origin feature_infinite_load    # 将修改发布到远程仓库 
  $ npm run changelog                    # 使用npm script中的changlog命令直接从git元数据生成日志。
  $ git tag v0.1.0
  $ git push origin v0.1.0

安装commitizen + cz-conventional-changelog

npm install -g commitizen
npm install -g cz-conventional-changelog

使用命令 git cz 替代 git commit,出现angular规范选择,如图:
[图片上传失败...(image-c98018-1527586920607)]

生成输出文档使用命令:

npm run changelog

在当前项目目录中生成 CHANGELOG.md 文件,效果如图:

changelog.jpg
上一篇下一篇

猜你喜欢

热点阅读