当前位置: 代码网 > it编程>编程语言>其他编程 > 别乱提交代码了,看下大厂 Git 提交规范是怎么做的!(2)

别乱提交代码了,看下大厂 Git 提交规范是怎么做的!(2)

2024年08月01日 其他编程 我要评论
类型>[可选的作用域]: [可选的正文][可选的脚注]commitizen是一个撰写合格commit message的工具,用于代替git commit指令,而适配器提供conventional-changelog标准(约定式提交标准)。基于不同需求,也可以使用不同适配器。安装完毕后,可直接使用git cz来取代git commit。全局模式下,需要~/.czrc配置文件, 为commitizen指定Adapter。commitlint负责用于对进行格式校验,husky负责提供更易用的。

<类型>[可选的作用域]: <描述>

[可选的正文]

[可选的脚注]

quick start


1. 全局安装commitizen & cz-conventional-changelog

commitizen是一个撰写合格commit message的工具,用于代替git commit 指令,而cz-conventional-changelog适配器提供conventional-changelog标准(约定式提交标准)。基于不同需求,也可以使用不同适配器。

npm install -g commitizen cz-conventional-changelog

echo ‘{ “path”: “cz-conventional-changelog” }’ > ~/.czrc

安装完毕后,可直接使用git cz来取代git commit

全局模式下,需要 ~/.czrc 配置文件, 为commitizen指定adapter

2. 项目内安装commitlint & husky

commitlint负责用于对commit message进行格式校验,husky负责提供更易用的git hook

use npm

npm i -d husky @commitlint/config-conventional @commitlint/cli

use yarn

yarn add husky @commitlint/config-conventional @commitlint/cli -d

com``mitlint只能做格式规范,无法触及内容。对于内容质量的把控只能靠我们自己。

3. 添加相应配置

创建commitlint.config.js

# in the same path as package.json

echo ‘module.exports = {extends: [“@commitlint/config-conventional”]};’ > ./commitlint.config.js

引入husky

7a641297b51d197fefdb3c6874cd0b7f.png

# package.json

…,

“husky”: {

“hooks”: {

“commit-msg”: “commitlint -e $git_params”

}

}

4. 使用

执行git cz进入interactive模式,根据提示依次填写

1.select the type of change that you’re committing 选择改动类型 ()

2.what is the scope of this change (e.g. component or file name)? 填写改动范围 ()

3.write a short, imperative tense description of the change: 写一个精简的描述 ()

4.provide a longer description of the change: (press enter to skip) 对于改动写一段长描述 ()

5.are there any breaking changes? (y/n) 是破坏性修改吗?默认n (

)

6.does this change affect any openreve issues? (y/n) 改动修复了哪个问题?默认n (

)

生成的commit message格式如下:

(): 

填写完毕后,husky会调用commitlint对message进行格式校验,默认规定typesubject为必填项。

任何git commit指令的option都能用在 git cz指令上, 例如git cz -a

commit message规范在rrd-fe落地使用情况


针对团队目前使用的情况,我们讨论后拟定了commit message每一部分的填写规则。推荐:java进阶教程资料,公众号java精选,回复java面试,获取面试资料。

1. type

type为必填项,用于指定commit的类型,约定了featfix两个主要type,以及docs、style、build、refactor、revert五个特殊type其余type暂不使用。

# 主要type

feat:     增加新功能

fix:      修复bug

# 特殊type

docs:     只改动了文档相关的内容

style:    不影响代码含义的改动,例如去掉空格、改变缩进、增删分号

build:    构造工具的或者外部依赖的改动,例如webpack,npm

refactor: 代码重构时使用

revert:   执行git revert打印的message

# 暂不使用type

test:     添加测试或者修改现有测试

perf:     提高性能的改动

ci:       与ci(持续集成服务)有关的改动

chore:    不修改src或者test的其余修改,例如构建过程或辅助工具的变动

当一次改动包括主要type特殊type时,统一采用主要type

2. scope

scope也为必填项,用于描述改动的范围,格式为项目名/模块名,例如:node-pc/common rrd-h5/activity,而we-sdk不需指定模块名。如果一次commit修改多个模块,建议拆分成多次commit,以便更好追踪和维护。

3. body

body填写详细描述,主要描述改动之前的情况修改动机,对于小的修改不作要求,但是重大需求、更新等必须添加body来作说明。

4. break changes

break changes指明是否产生了破坏性修改,涉及break changes的改动必须指明该项,类似版本升级、接口参数减少、接口删除、迁移等。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、oppo等大厂,18年进入阿里一直到现在。

深知大多数java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注java获取)

img
线程、数据库、算法、jvm、分布式、微服务、框架、spring相关知识

一线互联网p7面试集锦+各种大厂面试集锦

学习笔记以及面试真题解析

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》
pring相关知识

[外链图片转存中…(img-bc9wfze3-1713545414096)]

一线互联网p7面试集锦+各种大厂面试集锦

[外链图片转存中…(img-yximdwrq-1713545414096)]

学习笔记以及面试真题解析

[外链图片转存中…(img-joetd1qc-1713545414097)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com