规范的 commit (Angular规范)

1. commit message

  • commit message 分3个部分:head, body, footer

    • head: <type> (scop): subject
      • type: feat, fix, docs, style, refactor, test, chore, revert, perf, build
      • score: 影响范围
      • subject: 简短描述(动词开头,首字母小写,结尾不加.)
    • body: 详细描述
    • footer: (1) 不兼容改动;(2) 关闭issue
  • revert 有特殊的格式

    # head: revert: <要被撤销的commit的head>
    # body: This reverts commit <commit-hash>.
    # eg:
    	revert: docs add README.md
    	This reverts commit a2d04c0b914785e4ff0cdf4baeea84d8611c7a61.
    

2. 一些规范commit message的工具

  • commitizen:辅助编写规范的commit message

    # 安装commitizen
    cnpm install -g --save-dev commitizen
    # 生成package.json文件
    npm init --yes
    # 设置支持commit message格式
    commitizen init cz-conventional-changelog --save --save-exact
    

    使用git cz代替git commit

    type介绍

    type detail 说明
    feat A new feature 新功能
    fix A bug fix 修复 bug
    docs Documentation only changes 文档修改
    style Changes that do not affect the meaning of the code (white-space, formatting, missing semicolons, etc) 格式(不影响代码运行的变动)
    refactor A code change that neither fixes a bug nor adds a feature 重构
    perf A code change that improves performance 提高性能
    test Adding missing tests or correcting existing tests 添加缺失测试或更正现有测试
    build Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) 依赖的外部资源变化
    chore Other changes that don’t modify src or test files 构建过程或辅助工具的变动
    revert Reverts a previous commit 恢复先前的提交
  • validate-commit-msg:在每次commit前检验缩写的message是否符合规范

    # 安装validate-commit-msg
    npm install --save-dev validate-commit-msg
    # 安装ghooks
    cnpm install ghooks --save-dev
    

    在 package.json 配置 ghooks。在config中添加如下信息

    "config": {
        "ghooks": {
          "commit-msg": "validate-commit-msg"
        },
        "validate-commit-msg": {
          "types": ["feat", "fix", "docs", "style", "refactor", "perf", "test", "build", "ci", "chore", "revert"],
          "scope": {
            "required": false,
            "allowed": ["*"],
            "validate": false,
            "multiple": false
          },
          "warnOnFail": false,
          "maxSubjectLength": 100,
          "subjectPattern": ".+",
          "subjectPatternErrorMsg": "subject does not match subject pattern!",
          "helpMessage": "",
          "autoFix": false
        }
      }
    
    • change log:目前还未使用,需要再翻查

    参考1:Git 提交的正确姿势:Commit message 编写指南

    参考2:git commit 规范工具

发布了18 篇原创文章 · 获赞 1 · 访问量 3361

猜你喜欢

转载自blog.csdn.net/SJ1551/article/details/100600881