你需要知道的大厂代码提交规范

除了 代码格式规范 之外,还有另外一个很重要的规范就是 代码提交规范!

在现在的项目开发中,通常情况下,我们都会通过 git 来管理项目。只要通过 git 来管理项目,那么就必然会遇到使用 git 提交代码的场景

当我们执行 git commit -m "描述信息" 的时候,我们知道此时必须添加一个描述信息。但是不同的人去填写描述信息的时候,都会根据自己的理解来进行描述。

如果没有一套规范的提交描述信息,这样就会导致别人在看你的提交记录时,看不懂你说的什么意思?不知道你当前的这次提交到底做了什么事情?例如在代码合并的时候,就会存在潜在的风险。

对于 git 提交规范 来说,不同的团队可能会有不同的标准,所以直接使用市面上成熟的方案就行了,例如,Angular团队的提交规范Angular团队 制定的提交规范是目前市面上公认为最合理、最系统、最流行的提交规范,也是许多大厂团队都在使用的代码规范,一些概念性的东西就不再赘述了,大家可以自行百度,我们直接进入使用。

commitizen 仓库名为 cz-cli ,它提供了一个 git cz 的指令用于代替 git commit

1、全局安装Commitizen

npm install -g commitizen

2、安装并配置 cz-customizable 插件

  1. 使用 npm 下载 cz-customizable

    css 复制代码
    npm i cz-customizable --save-dev
  2. 添加以下配置到 package.json

    erlang 复制代码
    ...
      "config": {
        "commitizen": {
          "path": "node_modules/cz-customizable"
        }
      },
     "cz-customizable": {
        "config": ".cz-config.cjs"
      }

3、项目根目录下创建 .cz-config.cjs 自定义提示文件

css 复制代码
module.exports = {
  // 可选类型
  types: [
    { value: 'feat', name: 'feat:     新增功能' },
    { value: 'fix', name: 'fix:      修复功能' },
    { value: 'docs', name: 'docs:     更新文档' },
    { value: 'style', name: 'style:    代码格式变更' },
    { value: 'refactor',name: 'refactor:     代码重构:非新增功能非修改功能' },
    { value: 'perf', name: 'perf:    性能优化' },
    { value: 'test', name: 'test:     增加测试用例' },
    { value: 'chore', name: 'chore:    构建过程或辅助工具的变动' },
    { value: 'revert', name: 'revert:   代码回退' },
  ],
  // 消息步骤
  messages: {
    type: '请选择提交类型:',
    customScope: '请输入修改范围(可选):',
    subject: '请简要描述提交(必填):',
    body: '请输入详细描述(可选):',
    footer: '请输入要关闭的issue(可选):',
    confirmCommit: '确认使用以上信息提交?(y/n/e/h)'
  },
  // 跳过问题
  skipQuestions: ['body', 'footer'],
  // subject文字长度默认是72
  subjectLimit: 72
}

4、使用 git cz 代替 git commit

总结

现在虽然我们可以使用**git cz去规范的提交代码了,但并不是强制性的,如果有的人继续使用老的方式去提交代码也是可以的,如果你想让团队成员必须使用 git cz**去提交代码,那么可以使用 git hooks工具去校验我们的提交信息,不符合规范的 commit 将不再可提交,甚至报错都是可以的。

相关推荐
王哈哈^_^1 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
cs_dn_Jie1 小时前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
开心工作室_kaic2 小时前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿2 小时前
webWorker基本用法
前端·javascript·vue.js
cy玩具3 小时前
点击评论详情,跳到评论页面,携带对象参数写法:
前端
qq_390161773 小时前
防抖函数--应用场景及示例
前端·javascript
John.liu_Test4 小时前
js下载excel示例demo
前端·javascript·excel
Yaml44 小时前
智能化健身房管理:Spring Boot与Vue的创新解决方案
前端·spring boot·后端·mysql·vue·健身房管理
PleaSure乐事4 小时前
【React.js】AntDesignPro左侧菜单栏栏目名称不显示的解决方案
前端·javascript·react.js·前端框架·webstorm·antdesignpro
哟哟耶耶4 小时前
js-将JavaScript对象或值转换为JSON字符串 JSON.stringify(this.SelectDataListCourse)
前端·javascript·json