美文网首页
committezen & standard-version规范

committezen & standard-version规范

作者: small_zeo | 来源:发表于2021-07-22 16:12 被阅读0次

    前言

    git作为一个开发人员必不可少的工具,代码提交也是日常一个非常频繁的操作,规范提交信息肯定是有必要的。
    如果手动按照规范提交代码,不免觉着有点麻烦。怎么办呢?最好是可以使用一个工具。
    commitizen就是一个比较合适的git提交规范信息的工具,commitizen可以帮助团队规范化commit提交格式信息,有利于追溯代码。
    使用commitizen 进行规范提交提交后,我们就可以使用 standard-version自动化版本控制,例如更新 CHANGELOG.md。

    一. Committezen规范提交信息

    当你使用Committezen提交时,系统会提示您在提交时填写所有必需的提交字段, 不需要再深入研究commit提交信息首选格式;命令行上获取有关提交消息格式的即时反馈,并提示输入必填字段即可。

    规范提交信息
    1. 规范提交信息的好处如下:
    • 清晰的历史记录,让开发人员高效地追溯代码
    • 自动化生成CHANGELOG.MD
    • 基于提交的类型,自动决定语义化的版本变更
    • 基于提交类型,触发构建和部署自动化流程
    <type>[optional scope]: <subject>
    //空一行
    [optional body]
    //空一行
    [optional footer(s)]
    

    type 提交的类别,必须是以下类型中的一个:

    feat:增加一个新功能
    fix:修复bug
    docs:只修改了文档
    style:做了不影响代码含义的修改,空格、格式化、缺少分号等等
    refactor:代码重构,既不是修复bug,也不是新功能的修改
    perf:改进性能的代码
    test:增加测试或更新已有的测试
    chore:构建或辅助工具或依赖库的更新
    

    话不多说,开始实际操作。

    Installing

    First,安装Committeen cli工具

    npm install commitizen -D
    

    Next,命令行执行以下命令初始化项目:

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

    Or 使用Yarn:

    commitizen init cz-conventional-changelog --yarn --dev --exact
    

    Then,将config.commitizen添加到package.json的根目录中,如下所示:

    "config": {
        "commitizen": {
          "path": "cz-conventional-changelog"
        }
     }
    

    package.json中增加如下脚本:

    "scripts": {
      "commit" : "git-cz"
    }
    
    现在可以npm run commit,操作如下:
    • git add . 文件
    • npm run commit,此时 commitizen 会通过 CLI 对我们进行询问:


      image.png
    • 选择提交类型后,根据实际情况填写详细信息:


      image.png
      image.png

      以上就实现半自动化规范提交信息了。

    二. standard-version自动化版本控制

    Installing
    npm i -D standard-version
    
    package.json的scripts中添加:
    "scripts": {
      "commit" : "git-cz",
      "release": "standard-version" 
    }
    
    现在你可以使用 npm run release,操作如下:
    • git add . 文件
    • npm run commit
    • npm run release


      image.png

      上述操作即可完成CHANGELOG.md自动化版本控制。

    自定义CHANGELOG.md生成

    默认情况下standard-version 只会在 CHANGELOG.md 中记录 feat 和 fix 类型的提交,可以自定义,操作如下:

    • 根目录下创建文件: .versionrc, .versionrc.json or .versionrc.js
    • 以创建.versionrc为例,参考配置信息如下:
    {
        "types": [
            {"type": "feat", "section": "Features"},
            {"type": "fix", "section": "Bug Fixes"},
            {"type": "chore", "hidden": true},
            {"type": "docs", "hidden": true},
            {"type": "style", "hidden": true},
            {"type": "refactor", "hidden": true},
            {"type": "perf", "hidden": true},
            {"type": "test", "hidden": true}
        ]
    }
    
    参考文档:

    规范GIT代码提交信息&自动化版本管理
    约定式提交规范
    commitizen不要在瞎提交git信息啦!
    commitizen - github
    commitizen - npm
    standard-version - npm
    standard-version - github

    相关文章

      网友评论

          本文标题:committezen & standard-version规范

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