Git Commitizen提交规范化自动生成changelog文件

 更新时间:2022年09月14日 16:01:41   作者:古兰精  
这篇文章主要为大家介绍了Git Commitizen提交规范化自动生成changelog文件详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

背景介绍

我们在使用一个比较厉害的框架或者库的时候,经常可以看到 CHANGELOG.md,维护版本更新内容。

很多时候,特别是在你开源自己的一个工具或库时,这种版本更新内容是非常有必要的,如果用户使用了你的轮子,连更新内容都不知道,试问你敢用吗? 那么这些都是怎么写的呢?每次发版都要手动记录吗?显然不是,这些都是靠提条记录生成的。

比如我们在 github 上随便找一个库:https://github.com/vuepress/vuepress-next,可以看到它就有这个文件

点进去可以查看具体内容:注意我画红线的这 2 个,我们是可以跳到对应 issue 和对应代码提交记录的。

Commitizen 介绍

1、团队约束

生成这种 CHANGELOG 有一个前提,就是团队成员都按规矩提交。人不是机器,习惯不养成往往会忽略,这种约束还是让工具来做吧。

2、Commitizen 是一个撰写符合 Commit Message 格式标准的一款工具,至于标准 Commit Message 格式标准,可以百度一下或者一会提交示例介绍。

3、局部安装 commitizen:npm install commitizen -D

4、执行脚本设置 package.json

在项目根目录下运行下面命令,使其支持angular的 Commit message 格式

// 如果你使用npm执行下面命令:
commitizen init cz-conventional-changelog --save-dev --save-exact
// 如果使用yarn,则执行下面:
commitizen init cz-conventional-changelog --yarn --dev --exact

注意,–save-exact 相当于锁定版本号

此时 package.json 新增了这部分内容

{
  "scripts": {
    "commit": "cz"
  },
  "devDependencies": {
    "commitizen": "^4.2.4",
    "conventional-changelog-cli": "^2.2.2"
  },
  "config": {
    "commitizen": {
      "path": "./node_modules/cz-conventional-changelog"
    }
  }
}

5、修改代码提交过程介绍

这时候就可以提交尝试下,提交的时候直接执行刚才添加的脚本:yarn commit 或者 npm run commit,然后就会看到让你选择的各种页面,选择即可

第一步: 选择这次提交的内容类型:提交类型是以后生成 CHANGELOG 分类题目

第二步: 这次提交影响范围

第三步:简短描述:如果你使用 gitlab 或者 github 进行远程分支 Merge requset 的时候,这个就是默认的title

第四步:详细描述

第五步:是否重大更新(改变):一般具有重要的大版本或者破坏原来代码的时候需要标记一下

第六步:这次提交对哪些打开的 issue 有影响:类似于 github 开源模式,代码的维护不论需求还是 fix都有对应的issue讨论进行code的支撑。git message 这一步就是为了关联issue。如果选择是,可写上相关issue 对应号码。(也就是上面的那 2 个可以跳转的地方)

自动产生CHANGELOG

那么正规的写提交记录最后就是为了让团队其他人看懂,还有一个目的是为了更规范的产生CHANGELOG,下面看看自动产生CHANGELOG的步骤。

1、安装产生 changelog 插件 conventional-changelog-cli:

npm install -D conventional-changelog-cli

2、在 package.json 添加脚本

"changelog": "conventional-changelog -p angular -u -i CHANGELOG.md -s -r 0"

3、执行脚本,查看结果:yarn changeLognpm run changeLog

最后即可生成一个提交日志文件

我这里测试了下:

feat 是 npm run commit 按步骤提交的

fix 是直接 git commit -m "fix: test 符号" 提交的

可以看到都生成了日志文件,所以如果团队每个人都能按 Commit 规范提交的话,第一步 Commitizen 约束是可以不需要的(但是会存在一个问题就是不能实现 issue 与 commitId 的代码提交记录的联动了)。

以上就是Git Commitizen提交规范化自动生成changelog文件的详细内容,更多关于Git Commitizen提交规范的资料请关注脚本之家其它相关文章!

相关文章

  • 微信支付 :curl出错,错误码:60两个问题的解决

    微信支付 :curl出错,错误码:60两个问题的解决

    这篇文章主要介绍了微信支付 出错的解决办法的相关资料,需要的朋友可以参考下
    2016-09-09
  • 五个最佳编程文本编辑器分享

    五个最佳编程文本编辑器分享

    五个最佳编程文本编辑器分享,经常编写代码的朋友可以参考下
    2012-04-04
  • tcp、udp、ip协议分析_动力节点Java学院整理

    tcp、udp、ip协议分析_动力节点Java学院整理

    这篇文章主要为大家详细介绍了tcp、udp、ip协议分析的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • git验证线上的版本是否符合预期

    git验证线上的版本是否符合预期

    当我们想知道部署项目的哪个版本有问题?当我们想知道线上运行的版本是否是我们预期的版本?当我们想把部署的版本与代码进行关联?如果是你用git来做版本管理,那就可以使用git-commit-id-maven-plugin插件来实现上述功能
    2022-07-07
  • 关于页面刷新,事件重复提交的方法分享

    关于页面刷新,事件重复提交的方法分享

    在处理页面事件时,我们会经常会碰到这样的情况:当我们在提交一项页面表单时,在提交成功后,当我们试图按F5刷新页面时,数据会再次的被重复提交
    2012-10-10
  • VSCode 格式化缩进代码的实现

    VSCode 格式化缩进代码的实现

    这篇文章主要介绍了VSCode 格式化缩进代码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 程序员开发项目是选择效率还是质量呢?

    程序员开发项目是选择效率还是质量呢?

    这篇文章主要介绍了程序员开发项目是选择效率还是质量呢?本文对这个每个程序员都会遇到的一个问题做了讲解,需要的朋友可以参考下
    2014-07-07
  • Visual Studio安装git插件的方法步骤

    Visual Studio安装git插件的方法步骤

    这篇文章主要介绍了Visual Studio安装git插件的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Spark处理trick总结分析

    Spark处理trick总结分析

    这篇文章主要为大家介绍了Spark处理trick总结分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Windows、IDEA、VS Code常用快捷键汇总

    Windows、IDEA、VS Code常用快捷键汇总

    这篇文章主要介绍了Windows、IDEA、VS Code常用快捷键汇总,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04

最新评论