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

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

在现在的项目开发中,通常情况下,我们都会通过 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 将不再可提交,甚至报错都是可以的。

相关推荐
star010-35 分钟前
一文学会HTML编程之视频+图文详解详析
前端·网络·网络安全·html·html5
star010-41 分钟前
【视频+图文详解】HTML基础3-html常用标签
前端·css·网络安全·html·html5·学习方法
无限大.6 小时前
前端知识速记:节流与防抖
前端
十八朵郁金香6 小时前
【VUE案例练习】前端vue2+element-ui,后端nodo+express实现‘‘文件上传/删除‘‘功能
前端·javascript·vue.js
学问小小谢6 小时前
第26节课:内容安全策略(CSP)—构建安全网页的防御盾
运维·服务器·前端·网络·学习·安全
LCG元7 小时前
Vue.js组件开发-实现全屏图片文字缩放切换特效
前端·javascript·vue.js
还是鼠鼠8 小时前
图书管理系统 Axios 源码__新增图书
前端·javascript·vscode·ajax·前端框架·node.js·bootstrap
还是鼠鼠11 小时前
图书管理系统 Axios 源码 __删除图书功能
前端·javascript·vscode·ajax·前端框架·node.js·bootstrap
轻口味11 小时前
Vue.js `Suspense` 和异步组件加载
前端·javascript·vue.js
m0_zj12 小时前
8.[前端开发-CSS]Day08-图形-字体-字体图标-元素定位
前端·css