Redian新闻
>
天天提交代码,git commit 提交时能规范一下吗?

天天提交代码,git commit 提交时能规范一下吗?

公众号新闻

推荐关注↓

作者:那个曾经的少年回来了

链接:juejin.cn/post/7134487982597210120

1、前言

写好git commit提交有什么好处呢?

  • 查看提交的log也非常的优雅,这个就不多提了
  • 方便查找日志记录,通过简单的过滤便能定位到具体想要查找的log
  • 方便问题回溯,通过git log就能查找到当时提交的代码文件,以及修改的代码
  • 其实如果使用过github的release, 可以直接根据feat和fix来过滤提取日志发布版本

接下来我就来实践一下,首先我这里使用的是pnpm安装依赖的。今天主要是在提交代码时稍微自动化一点,并且让提交规范统一一些。

具体操作的源码项目 github.com/aehyok/taro…[1]

2、commitizen插件

pnpm i commitizen -D 

此时我们先 git add .,然后就可以使用一下 git cz,所以现在可以直接在package.json中添加一个scripts

// && 代表`git add .和 `git cz` 两个指令串行执行,
// 先执行前一个,执行完后再执行后一个
"git""git add . && git cz"

那么接下来直接执行  pnpm git

输入commit的提交信息,保存,关闭小窗,因为我这里用的是gitExtensions图形操作程序,随后git push提交即可,但是这样其实只是换了一个命令而已,并没有什么实质性的改变。那接下来就让它改变一下吧

3、cz-customizable设置提交模板

pnpm i cz-customizable -D

安装完之后在package.json中添加如下节点

 "config": {
    "commitizen": {
      "path""node_modules/cz-customizable"
    }
  },

同时可以再根目录创建.cz-config.js,这里有一份官网提供的模板 github.com/leoforfree/…[2]

下面这个是我自己修改后的提交模板

module.exports = {
// type 类型(定义之后,可通过上下键选择)
types: [
{ value: 'feat', name: 'feat: 新增功能' },
{ value: 'fix', name: 'fix: 修复 bug' },
{ value: 'docs', name: 'docs: 文档变更' },
{
value: 'style',
name: 'style: 代码格式(不影响功能,例如空格、分号等格式修正)'
},
{
value: 'refactor',
name: 'refactor: 代码重构(不包括 bug 修复、功能新增)'
},
{ value: 'perf', name: 'perf: 性能优化' },
{ value: 'chore', name: 'chore: 其他修改, 比如构建流程, 依赖管理、版本好修正.' }
],

// scope 类型(定义之后,可通过上下键选择)
scopes: [
['components', '组件相关'],
['hooks', 'hook 相关'],
['utils', 'utils 相关'],
['element-ui', '对 element-ui 的调整'],
['styles', '样式相关'],
['deps', '项目依赖'],
['auth', '对 auth 修改'],
['other', '其他修改'],
// 如果选择 custom,后面会让你再输入一个自定义的 scope。也可以不设置此项,把后面的 allowCustomScopes 设置为 true
['custom', '以上都不是?我要自定义']
].map(([value, description]) => {
return {
value,
name: `${value.padEnd(30)} (${description})`
}
}),

// 是否允许自定义填写 scope,在 scope 选择的时候,会有 empty 和 custom 可以选择。
// allowCustomScopes: true,

// allowTicketNumber: false,
// isTicketNumberRequired: false,
// ticketNumberPrefix: 'TICKET-',
// ticketNumberRegExp: '\\d{1,5}',

// 针对每一个 type 去定义对应的 scopes,例如 fix
/*
scopeOverrides: {
fix: [
{ name: 'merge' },
{ name: 'style' },
{ name: 'e2eTest' },
{ name: 'unitTest' }
]
},
*/

// 交互提示信息
messages: {
type: '确保本次提交遵循:前端代码规范!\n选择你要提交的类型:',
scope: '\n选择一个 scope(可选):',
// 选择 scope: custom 时会出下面的提示
customScope: '请输入自定义的 scope:',
subject: '填写简短精炼的变更描述:\n',
body: '填写更加详细的变更描述(可选)。使用 "|" 换行:\n',
breaking: '列举非兼容性重大的变更(可选):\n',
footer: '列举出所有变更的 ISSUES CLOSED(可选)。例如: #31, #34:\n',
confirmCommit: '确认提交?'
},

// 设置只有 type 选择了 feat 或 fix,才询问 breaking message
allowBreakingChanges: ['feat', 'fix'],

// 跳过要询问的步骤
skipQuestions: ['scope', 'body', 'breaking', 'footer'],

subjectLimit: 100, // subject 限制长度
breaklineChar: '|' // 换行符,支持 body 和 footer
// footerPrefix : 'ISSUES CLOSED:'
// askForBreakingChangeFirst : true,
}

运行 pnpm git

根据指引提示,然后输入提交信息,推送到服务器就完成了,查看git log可以发现

4、总结

其实还可以将脚本修改一下

"git""git add . && git cz && git push"

这样三个指令会串行执行,一个接着一个执行,如果提交没什么问题的话,很自然就推送到远端了。

参考资料

[1]

github.com/aehyok/taro…: https://github.com/aehyok/taro-vue3-miniprogram

[2]

github.com/leoforfree/…: https://github.com/leoforfree/cz-customizable/blob/master/cz-config-EXAMPLE.js

- EOF -




推荐阅读  点击标题可跳转

0、极客专属:几十款程序员秒懂的卫衣

1、没有几十年功力,写不出这一行“看似无用”的代码!!

2、Linus 已决定将 Rust 语言加入 Linux 内核

3、虾皮光速大裁员!上个厕所的功夫,瞬间查无此人...


关注「程序员的那些事」加星标,不错过圈内事

点赞和在看就是最大的支持❤️

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
绝美|这才是终极北美自驾!对角线穿越,总长9000公里!想挑战一下吗?动动嘴就能写代码了!Copilot测试新功能“嘿,GitHub”,告别键盘编码台积电分红曝光:入职8个月狂领44个月薪水;马斯克:管理层必须每周提交代码;Elastic 将裁员13%,至少14周补偿|Q资讯一天提现300元,拼多多怎么变大方了AI术士炼肛记:程序员开源「肛珠作弊」代码,在线寻找天选之子亲自体验Costco后天提早关门!提个醒,这些地方圣诞不开门,别白跑一趟身材超“大”只的撸铁辣妹,emmmm….实名羡慕了!动力电池冬天提前来了?中创新航上市首月跌46%|焦点分析小孩总是给你惊喜Costco明天提早关门!这些常去地方圣诞不开门太冷了!气温何时回升?雪还下吗?新房!心慌!黑龙江一小区居民每天提心吊胆......在美国上学的经历2023er注意了:加州大学本科申请开始递交时间提前1个月!What Do Counseling and Cosmetology Have in Common?Costco实拍:荔枝酥$12.99、儿童退烧药$17.99、Tommy夹克$59.99!月光黯淡(二十一)揭秘!H&M 8个隐蔽的省钱技巧,不了解一下吗?研究:近半数美国人睡眠不足,社交时差危害健康因开发人员误公开源代码,丰田或泄露近30万客户信息让程序员动嘴写代码,Copilot测试新功能「嘿,GitHub!」早报 | MO&Co.母公司关闭旗下男装品牌Common Gender;斯凯奇起诉爱马仕;Max Mara去年收入大涨28%Acciona Energía 收购德州最大的电池储能项目我,985毕业,40岁码农,还在荷兰写低级代码,不敢回国…老钱:是“曹长青”吗?还是晚节不保?买美国债券I-bond后遭遇的最糟糕服务《脱口秀大会》爆点不止股票代码,那英周迅为何翻车?云南白药被责令改正,公司治理不规范、内部控制不完善、财务核算不规范在Domino's Pizza消费满$5,返现$5!@ CommBank & Domino's中国电池基地产能规划全景地图用1个月重构了同事写的烂代码,我总结出了15条重写烂代码的经验!大爷投1万炒股忘掉密码,15年后发现已经变成50万!又一股市致富故事是因为忘记密码,长期投资+优质公司才是复利的意义...Copilot逐字复制代码,恐抹去整个开源社区?程序员拿出律师证发起集体诉讼那位用Rust重写数据库的创始人来复盘了:删除27万行C++代码,值吗?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。