Notes
  • 速记
  • 前端面试
  • HTML / CSS
    • HTML
    • CSS
    • CSS Modules
      • CSS Modules
        • CSS Modules Usage
      • Stylus
      • Nunjucks
  • Javascript
    • 正则表达式
    • 代理(Proxy)和反射(Reflection)
    • 类型转换
    • 按位操作
    • 数据可视化
    • 数据采集
      • 无(全)埋点
      • 模块曝光事件
    • package
      • axios
    • Event Loop
    • React
      • React热身
      • VDOM和DOM-diff
    • Vue
    • Omi
    • MVVM
    • 百度小程序
    • AST抽象语法树
    • ServiceWorker
    • WebSocket
  • NodeJS
    • Assert 断言
    • chai.js 断言库
    • Node Global Obj And Var
    • CLI Writed By Nodejs
    • Framework
      • Hapi Js Framework
    • Electrode JS
      • Electrode Platform
      • Electrode Question
    • Redux
      • Redux Basic Usage
      • Middleware And Asynchronous
      • React-Redux 的用法
    • NPM
      • package.json
      • semver
    • Webpack
      • 编写插件
    • 同构渲染
    • 调用DLL
  • 服务端
    • Inotify
    • Linux
    • Nginx
      • Nginx简介
      • Nginx原理、安装预配置
    • TCP/IP 协议
    • HTTP 协议
      • 基础概念篇
      • 协议详解篇
    • Process
      • 阻塞与非阻塞
      • 进程与线程优性能
  • 数据库
    • GraphQL
  • 移动端
  • 微信小程序
    • 微信小程序安装(linux)
    • 小程序第三方框架
  • 开发工具
    • 开发工具安装
    • Vim Command Collection
    • Git
      • Git Rule
      • Git Submodule
      • gitignore
    • Lerna
    • Ubuntu开发环境安装
  • 运维测试
    • Docker
      • Docker Synopsis
      • docker.sock
    • Nightwatch
    • Jest
  • 算法/数学/架构
    • 设计模式
    • 架构设计经验分享
    • 前端架构
    • 基本数据结构
    • 函数式编程
  • 软件工程
    • 软件生命周期
Powered by GitBook
On this page
  • 具体规则
  • type
  • scope
  • subject
  • 项目中使用
  • 使用方式
  • Commit 规范的作用
  • 生成 Change log

Was this helpful?

  1. 开发工具
  2. Git

Git Rule

具体规则

<type>(<scope>): <subject>

type

用于说明 commit 的类别,只允许使用下面7个标识  
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动

scope

用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同  

subject

是 commit 目的的简短描述,不超过50个字符  

以动词开头,使用第一人称现在时,比如change,而不是changed或changes 第一个字母小写 结尾不加句号(.)

项目中使用

Node 插件 validate-commit-msg ,检查项目中 Commit message 是否规范

使用方式

  1. 建立 .vcmrc 文件:

{ 
    "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 
}
  1. 写入 package.json

{ 
    "config": { 
        "validate-commit-msg": { 
        /* your config here */ 
        } 
    } 
}
  1. 自动使用 ghooks 钩子函数

    TODO: 详解

{ 
    … 
    "config": { 
        "ghooks": { 
            "pre-commit": "gulp lint", 
            "commit-msg": "validate-commit-msg", 
            "pre-push": "make test", 
            "post-merge": "npm install", 
            "post-rewrite": "npm install", 
            … 
        } 
    } 
    … 
}

Commit 规范的作用

  1. 提供更多的信息,方便排查与回退;

  2. 过滤关键字,迅速定位;

  3. 方便生成文档;

生成 Change log

生成的文档包括以下三个部分: 1. New features 2. Bug fixes 3. Breaking changes.

使用工具 Conventional Changelog 生成 Change log :

npm install -g conventional-changelog 
cd jartto-domo 
conventional-changelog -p angular -i CHANGELOG.md -w
PreviousGitNextGit Submodule

Last updated 5 years ago

Was this helpful?