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

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

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

1. 全局安装 commitizen

javascript 复制代码
npm install -g [email protected]

安装成功后如下图所示:

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

2.1. 使用 npm 下载 cz-customizable

javascript 复制代码
npm i [email protected] --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来防止这种问题发生。

相关推荐
yuanbenshidiaos8 小时前
讲讲git 和svn
git·svn
刃神太酷啦9 小时前
类和对象(1)--《Hello C++ Wrold!》(3)--(C/C++)
java·c语言·c++·git·算法·leetcode·github
s91236010111 小时前
Git 用法总结
git
江边垂钓者20 小时前
Git简介和发展
git
大卫小东(Sheldon)1 天前
GIM: 调用AI自动生成git提交消息的工具
git·rust
程序设计实验室1 天前
如何清理误提交到git的历史大文件?
git
江边垂钓者1 天前
Git初始化相关配置
git
wumu_Love1 天前
git 报错:错误:RPC 失败。curl 28 Failed to connect to github.com port 443 after 75000
git·rpc·github
powerfulzyh1 天前
Git 时光机:修改Commit信息
git
极小狐1 天前
如何使用极狐GitLab 软件包仓库功能托管 terraform?
linux·运维·git·ssh·gitlab·terraform