# gitHookTest **Repository Path**: qqqnnn12345/gitHookTest ## Basic Information - **Project Name**: gitHookTest - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-31 - **Last Updated**: 2022-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## husky ### step 1 ``` //安装依赖 npm install -D @commitlint/config-conventional @commitlint/cli husky ``` ### step 2 ``` npm set-script prepare "husky install" 或者在 package.json 中配置 { "script": { "prepare":"husky install" } } ``` ``` npm run prepare ``` ``` //新增 commitlint.config.js module.exports = { extends: ['@commitlint/config-conventional'], rules: { 'type-enum': [ 2, 'always', [ 'bug', // 此项特别针对bug号,用于向测试反馈bug列表的bug修改情况 'feat', // 新功能(feature) 'fix', // 修补bug 'docs', // 文档(documentation) 'style', // 格式(不影响代码运行的变动) 'refactor', // 重构(即不是新增功能,也不是修改bug的代码变动) 'test', // 增加测试 'chore', // 构建过程或辅助工具的变动 'revert', // feat(pencil): add ‘graphiteWidth’ option (撤销之前的commit) 'merge' // 合并分支, 例如: merge(前端页面): feature-xxxx修改线程地址 ] ] } }; ``` ``` 在 package.json 中配置 { "script": { "prepare":"husky install", "commitlint": "commitlint --config commitlint.config.js -e -V", } } ``` ``` yarn husky add .husky/commit-msg 'yarn commitlint --edit "$1"' ``` ``` git add .husky/commit-msg ``` ## git cz 代替 git commit ``` npm install cz-customizable -dev -save ``` # 新建文件 cz-config-EXAMPLE.js ``` 'use strict'; module.exports = { types: [ {value: 'feat', name: 'feat: A new feature'}, {value: 'fix', name: 'fix: A bug fix'}, {value: 'docs', name: 'docs: Documentation only changes'}, {value: 'style', name: 'style: Changes that do not affect the meaning of the code\n (white-space, formatting, missing semi-colons, etc)'}, {value: 'refactor', name: 'refactor: A code change that neither fixes a bug nor adds a feature'}, {value: 'perf', name: 'perf: A code change that improves performance'}, {value: 'test', name: 'test: Adding missing tests'}, {value: 'chore', name: 'chore: Changes to the build process or auxiliary tools\n and libraries such as documentation generation'}, {value: 'revert', name: 'revert: Revert to a commit'}, {value: 'WIP', name: 'WIP: Work in progress'} ], scopes: [ {name: 'accounts'}, {name: 'admin'}, {name: 'exampleScope'}, {name: 'changeMe'} ], // it needs to match the value for field type. Eg.: 'fix' /* scopeOverrides: { fix: [ {name: 'merge'}, {name: 'style'}, {name: 'e2eTest'}, {name: 'unitTest'} ] }, */ // override the messages, defaults are as follows messages: { type: 'Select the type of change that you\'re committing:', scope: '\nDenote the SCOPE of this change (optional):', // used if allowCustomScopes is true customScope: 'Denote the SCOPE of this change:', subject: 'Write a SHORT, IMPERATIVE tense description of the change:\n', body: 'Provide a LONGER description of the change (optional). Use "|" to break new line:\n', breaking: 'List any BREAKING CHANGES (optional):\n', footer: 'List any ISSUES CLOSED by this change (optional). E.g.: #31, #34:\n', confirmCommit: 'Are you sure you want to proceed with the commit above?' }, allowCustomScopes: true, allowBreakingChanges: ['feat', 'fix'], // limit subject length subjectLimit: 100 }; ``` # 修改package.json ``` { ... "scripts": { "commitlint": "commitlint --config commitlint.config.js -e -V", "prepare": "husky install" }, //新增 "config": { "commitizen": { "path": "node_modules/cz-customizable" }, "cz-customizable": { "config": "cz-config-EXAMPLE.js" } } } ```