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

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

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

相关推荐
echome8888 小时前
Python 异常处理:try、else、finally 的正确搭配
开发语言·前端·python·异常处理·编程技巧
时间的情敌8 小时前
OpenLayers 实战|Vue3 + OpenLayers 完整工程案例(加载天地图、要素、弹窗、绘制、WFS)
前端·openlayers
陈随易8 小时前
下载神器!Motrix 停更三年后重写回归
前端·后端·程序员
前端的日常9 小时前
一个人+AI做情侣食谱小程序,0 费用的服务器
前端·后端
计算机魔术师9 小时前
谷歌搜索广告踩刹车,AI广告成为救命稻草
前端
总要学点什么9 小时前
第81篇:数据可视化-PM2.5分布——让圆点的胖瘦替每座城市报出浓度
前端·信息可视化·echarts·cesium·空间分析
IT_陈寒9 小时前
Vue的v-for里用了个临时变量,页面直接挂了
前端·人工智能·后端
hunter_0769 小时前
一次 iOS 真机签名 409 的完整排查:证书、设备、描述文件为什么总是"对不上"
前端
枣把儿10 小时前
开源!公众号排版+一键发布工具懒人版
前端
2501_9160074710 小时前
抓包工具功能对比,TraceEagle、Charles、Fiddler、Wireshark、mitmproxy 差别
前端·网络协议·ios·adb·https·fiddler·wireshark