大厂开发规范-如何规范的提交Git

多人协作开发提交代码通常是遵循约定式提交规范,如果严格安照约定式提交规范, 手动进行代码提交的话,那么是一件非常痛苦的事情,但是 Git 提交规范的处理又势在必行,那么怎么办呢?

经过了很多人的冥思苦想,就出现了一种叫做 Git 提交规范化工具 的东西,而我们要学习的 Commitizen 就是其中的佼佼者!

1. 全局安装 commitizen

javascript 复制代码
npm install -g commitizen@4.2.4

安装成功后如下图所示:

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

2.1. 使用 npm 下载 cz-customizable

javascript 复制代码
npm i cz-customizable@6.3.0 --save-dev

使用以上命令在项目的命令行中安装插件,如下图所示:

2.2. 添加以下配置到 package.json 中

javascript 复制代码
"config": {
    "commitizen": {
        "path": "node_modules/cz-customizable"
    }
}

配置后如下图所示:

3. 创建 cz-config.js 自定义提示文件

项目根目录下创建 .cz-config.js 自定义提示文件,添加配置如下:

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

4. 使用 git cz 代替 git commit

提交代码时使用 git cz 代替 git commit,即可看到提示内容。

到这里我们就已经可以实现了规范化的提交诉求了,但是当前依然存在着一个问题,那就是我们必须要通过 git cz 指令才可以完成规范化提交。

那么如果有马虎的同事,它们忘记了使用 git cz 指令,直接就提交了怎么办呢?

那么有没有方式来限制这种错误的出现呢?

我们可以通过Git Hooks来防止这种问题发生。

相关推荐
眯眼因为很困啦31 分钟前
GitHub Fork 协作完整流程
前端·git·前端工程化
AlexDeng2 小时前
Git 中模糊搜索分支名称并创建本地跟踪分支
git
jxm_csdn6 小时前
递归工程工厂:Claude Code + Git Worktrees + Tilix/Tmux 的“AI分身”编码团队
人工智能·git
码咔吧咔6 小时前
Git 中 pull.rebase = true 的作用与设置方法详解
git
郑州光合科技余经理9 小时前
开发实战:海外版同城o2o生活服务平台核心模块设计
开发语言·git·python·架构·uni-app·生活·智慧城市
我是海飞10 小时前
Git 本地仓库推送到远程空仓库指南
大数据·git·elasticsearch
记得开心一点嘛10 小时前
如何去使用git进行协同开发?
git
GHL28427109020 小时前
git cherry-pick使用
git
小龙21 小时前
【Git 报错解决】本地分支与远程分支名称/提交历史不匹配
大数据·git·elasticsearch·github
阿正的梦工坊1 天前
Git Rebase 是什么?为什么需要它?
人工智能·git