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

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

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

相关推荐
哀木2 分钟前
当你在 2025 做暗色方案
前端
brzhang5 分钟前
搞懂 Session、Cookie、JWT、SSO 到 OAuth 2.0:你的登录认证还好吗?
前端·后端·架构
魔法少女樱6 分钟前
如何在idea中写spark程序
前端·javascript·ajax
三思而后行,慎承诺7 分钟前
npm、pnpm 和 yarn 包管理工具
前端·npm·node.js
wuhen_n28 分钟前
CSS元素动画篇:基于当前位置的变换动画(三)
前端·css·html·css3·html5
brzhang30 分钟前
告别面条代码!用可视化编程 Flyde 给你的 Node.js/Web 应用逻辑解解耦
前端·后端·架构
brzhang1 小时前
还在手撸线程?搞懂这 6 大多线程设计模式,并发编程不再难!
前端·后端·架构
拖孩1 小时前
【Nova UI】十四、打造组件库之按钮组件(下):按钮组组件的构建之旅
前端·javascript·vue.js
pixle01 小时前
Vue3 Echarts 3D圆形柱状图实现教程以及封装一个可复用的组件
前端·3d·vue·echarts
Rudon滨海渔村1 小时前
[随笔] 升级uniapp旧项目的vue、pinia、vite、dcloudio依赖包等
前端·vue.js·uni-app