Git-cz初级使用

Git-cz

一款工程性更强,轻量级,高度自定义,标准输出格式的 commitizen 适配器

安装

第一步:安装依赖

yarn安装
yarn add commitizen
yarn add -D cz-git

npm安装
npm install -g commitizen
npm install -D cz-git

第二步:配置适配器

添加启动命令

image.png
修改 package.json 添加 config 指定使用的适配器
image.png

"config": {
    "commitizen": {
      "path": "node_modules/cz-git",
      "useEmoji": true
    }
  }
第三步:添加自定义配置

添加.commitlintrc.cjs文件

image.png

/*
 * @Author: 何元鹏
 * @Date: 2024-04-01 11:16:51
 * @LastEditors: 何元鹏
 * @LastEditTime: 2024-04-01 15:06:50
 */ 
module.exports = {
  rules: {
    // @see: https://commitlint.js.org/#/reference-rules
  },
  prompt: {
    alias: { fd: 'docs: fix typos' },
    messages: {
      type: '选择你要提交的类型 :',
      scope: '选择一个提交范围(可选):',
      customScope: '请输入自定义的提交范围 :',
      subject: '填写简短精炼的变更描述 :\n',
      body: '填写更加详细的变更描述(可选)。使用 "|" 换行 :\n',
      breaking: '列举非兼容性重大的变更(可选)。使用 "|" 换行 :\n',
      footerPrefixesSelect: '选择关联issue前缀(可选):',
      customFooterPrefix: '输入自定义issue前缀 :',
      footer: '列举关联issue (可选) 例如: #31, #I3244 :\n',
      confirmCommit: '是否提交或修改commit ?'
    },
    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' },
      { 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 or correcting existing tests' },
      { value: 'build', name: 'build:    构建相关 | Changes that affect the build system or external dependencies' },
      { value: 'ci', name: 'ci:       持续集成 | Changes to our CI configuration files and scripts' },
      { value: 'revert', name: 'revert:   回退代码 | Revert to a commit' },
      { value: 'chore', name: 'chore:    其他修改 | Other changes that do not modify src or test files' },
    ],
    useEmoji: false,
    emojiAlign: 'center',
    useAI: false,
    aiNumber: 1,
    themeColorCode: '',
    scopes: [],
    allowCustomScopes: true,
    allowEmptyScopes: true,
    customScopesAlign: 'bottom',
    customScopesAlias: 'custom',
    emptyScopesAlias: 'empty',
    upperCaseSubject: false,
    markBreakingChangeMode: false,
    allowBreakingChanges: ['feat', 'fix'],
    breaklineNumber: 100,
    breaklineChar: '|',
    skipQuestions: [],
    issuePrefixes: [
      // 如果使用 gitee 作为开发管理
      { value: 'link', name: 'link:     链接 ISSUES 进行中' },
      { value: 'closed', name: 'closed:   标记 ISSUES 已完成' }
    ],
    customIssuePrefixAlign: 'top',
    emptyIssuePrefixAlias: 'skip',
    customIssuePrefixAlias: 'custom',
    allowCustomIssuePrefix: true,
    allowEmptyIssuePrefix: true,
    confirmColorize: true,
    maxHeaderLength: Infinity,
    maxSubjectLength: Infinity,
    minSubjectLength: 0,
    scopeOverrides: undefined,
    defaultBody: '',
    defaultIssues: '',
    defaultScope: '',
    defaultSubject: ''
  }
}

### git-cz 与 ESLint 的关联 git-cz 是 Commitizen 的命令行工具,用于生成符合规范的 Git 提交信息,帮助团队统一提交风格;ESLint 是一个 JavaScript 代码检查工具,用于识别和报告代码中的模式错误,保证代码质量和一致性。二者关联在于都服务于代码管理和质量保障流程,可结合使用,在代码提交前进行代码质量检查,检查通过后再使用 git-cz 生成规范的提交信息,确保提交到仓库的代码既符合质量标准,又有规范的提交说明。 ### 配合使用方法 1. **安装依赖**:在项目中安装 git-cz 和 ESLint 及其相关依赖。 ```bash npm install --save-dev cz-git eslint ``` 2. **配置 ESLint**:在项目根目录创建 `.eslintrc.js` 文件,配置 ESLint 规则。 ```javascript module.exports = { env: { browser: true, es2021: true }, extends: [ 'eslint:recommended', ], parserOptions: { ecmaVersion: 12, sourceType: 'module' }, rules: { // 自定义规则 } }; ``` 3. **配置 package.json**:在 `package.json` 中添加脚本和配置。 ```json { "scripts": { "lint": "eslint src", "commit": "git-cz" }, "husky": { "hooks": { "pre-commit": "npm run lint", "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } }, "config": { "commitizen": { "path": "node_modules/cz-git" } } } ``` 上述配置中,`pre-commit` 钩子会在执行 `git commit` 时先运行 `eslint` 检查代码,检查通过才允许提交;`commit-msg` 钩子用于检查提交信息是否符合规范。 4. **使用命令**:当需要提交代码时,先确保代码通过 ESLint 检查,然后使用 `npm run commit` 调用 git-cz 生成规范的提交信息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值