结合企业实践来规范你的Git commit(含插件使用指南)

news2024/9/23 21:21:29

🏆 文章目标:了解通用的Git commit规范,并在企业的团队内部进行实践。
🍀 如何规范你的Git commit(理论结合企业的实践)
✅ 创作者:Jay…
🎉 个人主页:Jay的个人主页
🍁 展望:若本篇讲解内容帮助到您,请帮忙点个赞吧,再点点您的小手关注下,您的支持是我继续写作的最大动力,谢谢。🙏

背景

commit message 目的是为了清晰明了的体现本次提交的内容,以及提交的目的。

但在日常开发中,大家的commit message千奇百怪,中英文混合使用,或者干脆就敷衍了事。这就导致后续代码维护成本特别大,追溯时,连开发者都不知道自己改了什么。

基于以上这些问题,我们希望通过某种方式来监控用户的git commit message,让规范更好的服务于质量,提高大家的研发效率。

对比

如下是我根据部门内部的情况,再结合通用的提交规范进行微调后实践的情况。当然,没有最好,只有最合适,大家可以自行发挥!详细的内部管理文档,可以联系我免费提供!

我们看看规范commit message之前大家都是怎么写的:

  • 修改了Bug
  • 提交代码
  • dev
  • 合并代码
  • Delete compiler.xml 以及调整部分注释

规范提交信息后:

如下的提交记录中的scope是按照产品的实际情况调整的,与通用规范存在一些区分:

  • fix(菜单): #7201, 子级菜单展开的样式问题。
  • fix(权限管理): #6312,调整权限管理中所有权限顺序按时间降序排序。
  • perf(权限管理): 优化权限管理中的缓存数据,只获取配置数据的关键信息,而不是所有信息。
  • feature(国际化): 增加国际化功能

规范建设

规范梳理

初期我们在互联网上搜索了大量有关git commit规范的资料,但只有Angular规范是目前使用最广的写法,比较合理和系统化,并且有配套的工具(IDEA就有插件支持这种写法)。最后综合阿里巴巴高德地图相关部门已有的规范总结出了一套git commit规范。

commit message格式:

<type>(<scope>): <subject>

type(必须)

用于说明git commit的类别,只允许使用下面的标识。

  • feat:新功能(feature)。
  • fix/to:修复bug,可以是QA发现的BUG,也可以是研发自己发现的BUG。
    • fix:产生diff并自动修复此问题。适合于一次提交直接修复问题
    • to:只产生diff不自动修复此问题。适合于多次提交。最终修复问题提交时使用fix
  • docs:文档(documentation)。
  • style:格式(不影响代码运行的变动)。
  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)。
  • perf:优化相关,比如提升性能、体验。
  • test:增加测试。
  • chore:构建过程或辅助工具的变动。
  • revert:回滚到上一个版本。
  • merge:代码合并。
  • sync:同步主线或分支的Bug。

scope(可选)

这里是否必须,以及范围是什么内容,可以看实际公司的情况。

scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。

例如在Angular,可以是location,browser,compile,compile,rootScope, ngHref,ngClick,ngView等。如果你的修改影响了不止一个scope,你可以使用*代替。

subject(必须)

subject是commit目的的简短描述,不超过50个字符。

建议使用中文(感觉中国人用中文描述问题能更清楚一些)。

  • 结尾不加句号或其他标点符号。
  • 根据以上规范git commit message将是如下的格式:
fix(DAO):用户查询缺少username属性 
feat(Controller):用户查询接口开发

以上就是我们梳理的git commit规范,那么我们这样规范git commit到底有哪些好处呢?

  • 便于程序员对提交历史进行追溯,了解发生了什么情况。
  • 一旦约束了commit message,意味着我们将慎重的进行每一次提交,不能再一股脑的把各种各样的改动都放在一个git commit里面,这样一来整个代码改动的历史也将更加清晰。
  • 格式化的commit message才可以用于自动化输出Change log。

插件

IDEA插件 - Git Commit Template

安装

1、打开 settings 下的 plugin 里搜索 git commit template 插件:

在这里插入图片描述
2、安装完后重启IDEA就可以使用了。

使用

安装后,可以在提交时看到如下图标:

在这里插入图片描述

选择需要的提交类型,可参考章节 规范建设

在这里插入图片描述

填写完成后的样例:

在这里插入图片描述

效果:

在这里插入图片描述

VS Code - git-commit-plugin

安装

1、打开 preferences 下的 extensions 里搜索 git commit 插件:

在这里插入图片描述

2、点击 Install 后就可以使用了。

使用

1、快捷键找到:Command + Shift + P打开,输入 show git commit template

在这里插入图片描述

2、选择提交的类型

在这里插入图片描述

3、按照内容进行填写后,点击 Complete

在这里插入图片描述

4、案例

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/431161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文学习——数据挖掘技术在水文数据分析中的应用

文章目录0 引言1 数据挖掘技术及工具1.1 什么是数据挖掘&#xff1f;1.2 数据挖掘的过程&#xff1f;1.3 常用的数据挖掘技术1.4 ODM2 水文数据分析系统功能设计3 系统实现与应用3.1 数据获取与清理3.2 模型建立4 结语2012年12月 计算机工程与设计 0 引言 洪水是现实生活中频发…

数据结构_第十三关(3):归并排序

目录 归并排序 1.基本思想&#xff1a; 2.原理图&#xff1a; 1&#xff09;分解合并 2&#xff09;数组比较和归并方法&#xff1a; 3.代码实现&#xff08;递归方式&#xff09;&#xff1a; 归并排序的非递归方式 原理&#xff1a; 情况1&#xff1a; 情况2&#…

《剑指大前端全栈工程师》--大前端时代全站式开发,直指大厂P7技术专家

【内容提要】 实力打造大前端时代&#xff0c;走在时代的钱端&#xff01;   实战驱动教学&#xff0c;探索前端黑科技。紧跟企业实际技术选型&#xff0c;追求技术的实用性与前瞻性完美结合&#xff01;   本书对大前端技术栈进行了全面的讲解&#xff0c;内容涉及HTML5CS…

AI产品铺天盖地,企业却用不上?

近年来,随着人工智能技术的飞速发展,越来越多的企业开始关注并尝试使用人工智能技术来提高业务效率和降低成本。然而,国内企业使用人工智能技术仍然存在一些困难和问题,主要原因如下: 国外产品不稳定或不安全 目前国内市场上存在许多国外的AI产品,例如ChatGPT、GPT-4等,但这些…

QT CTK控件 CTK开发(二)

CTK 为支持生物医学图像计算的公共开发包,其全称为 Common Toolkit。为医学成像提供一组统一的基本功能;促进代码和数据的交互及结合;避免重复开发;在工具包(医学成像)范围内不断扩展到新任务,而不会增加现有任务的负担;整合并适应成功的解决方案。 本专栏文章较为全面…

教你如何搭建物业-后勤管理系统,demo可分享

1、简介 1.1、案例简介 本文将介绍&#xff0c;如何搭建物业-后勤管理。 1.2、应用场景 该应用包含疫情上报、绿化、安保等管理功能。 2、设置方法 2.1、表单搭建 1&#xff09;新建表单【返区登记】&#xff0c;字段设置如下&#xff1a; 名称类型名称类型姓名单行文本…

【历史上的今天】3 月 17 日:苹果起诉微软;CN 域名开放注册;赛博朋克之父出生

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 3 月 17 日&#xff0c;在 1958 年的今天&#xff0c;我国第一台黑白电视机诞生。当时&#xff0c;我国电视机研制技术与日本基本处在同一起跑线&#xff0c;是…

四十六、docker-compose部署

一个项目肯定包含多个容器&#xff0c;每个容器都手动单独部署肯定费时费力。docker-compose可以通过脚本来批量构建镜像和启动容器&#xff0c;快速的部署项目。 使用docker-compose部署主要是编写docker-compose.yml脚本。 一、项目结构 不论是Dockerfile还是docker-compo…

如果你想从事人工智能职业,学习Python吧

人工智能并不会抢走你的工作&#xff0c;至少目前还不会。人工智能和机器学习&#xff08;AI/ML&#xff09;最好的应用是补充人类的创造力&#xff0c;而不是取代它。具有讽刺意味的是&#xff0c;最好的大型语言模型&#xff08;LLMs&#xff09;可能是通过使用受版权保护的人…

本地环境配置自签名HTTPS证书

在本地使用的线上的https证书的话&#xff0c;每三个月需要更新一次比较繁琐&#xff0c;用本地证书也可以满足调试需求也会方便许多 下载签名工具&#xff1a; https://github.com/FiloSottile/mkcert/releases/tag/v1.4.4 根据需求下载对应系统的版本&#xff0c;以64位的win…

有奖征文|小鱼再进化!OceanBase 4.1免费体验

OceanBase 4.0&#xff08;小鱼&#xff09;的首次亮相是在 2022 年 8 月&#xff0c;作为业内首个单机分布式一体化架构的数据库&#xff0c;4.0 版本兼顾了分布式架构的扩展性和集中式架构的性能优势&#xff0c;在同等硬件条件下实现单机性能赶超集中式数据库的同时&#xf…

【分享】群报数入驻集简云平台,实现无代码集成数百款应用

群报数介绍 群报数是一款人人可用的轻量化统计小程序&#xff0c;支持填表、报名、接龙、预约、打卡、问卷、通知等多种场景。 群报数集简云使用场景 企业的用户信息&#xff0c;人才信息往往在很多不同的系统里&#xff0c;比如CRM系统&#xff0c;客服系统&#xff0c;人力…

打造智慧医疗新生态:互联网医院系统源码分析

在数字化时代&#xff0c;医疗行业也在不断地探索新的模式和方法&#xff0c;以更好地服务于人民群众。互联网医院系统作为一种新型医疗服务模式&#xff0c;受到了广泛的关注和热议。下文&#xff0c;小编将为大家介绍互联网医院系统的概念、特点以及如何利用互联网医院系统源…

Rhodamine-PEG-NH2,罗丹明-聚乙二醇-氨基的结构式,一文了解RB-PEG-NH2的使用

RB-PEG-NH2,罗丹明-聚乙二醇-氨基 中文名称&#xff1a;罗丹明-聚乙二醇-氨基 英文名称&#xff1a;RB-PEG-NH2 性状&#xff1a;粉红色/红色固体或者粘稠液体&#xff0c;取决于分子量大小。 溶剂&#xff1a;溶于水和常规性有机溶剂 激发/发射波长&#xff1a;570nm/590…

开源周报第 89 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 Databend v1.1 …

【Mybatis源码分析】Mybatis中的反射(MetaObject)详细讲解

Mybatis中的反射 一、引入MetaObject二、MetaObject 源码分析1. 使用MetaObject 三、BeanWrapper源码分析1. MetaClass2. ReflectorFactory3. Reflector 四、总结 一、引入MetaObject 在使用Mybatis&#xff0c;编写DQL语句时&#xff0c;查询结果可能会是多个&#xff0c;多变…

Java实现图片验证码功能

文章目录一、背景二、实现步骤1、maven中加入依赖2、CaptchaController.java3、生成验证码配置4、CaptchaService.java接口5、CaptchaServiceImpl.java实现类6、增加验证码校验涉及文件一、背景 在实现登录功能时&#xff0c;为了防止特定的程序暴力破解&#xff0c;一般为了安…

使用DevExpress22.X(Patch)控件库在VisualStudio2022使用C#进行Winform、WPF应用的开发,看这一篇就够了!

写在开头&#xff0c;Dev Express是个十分强大的控件库&#xff08;下文简称Dev&#xff09;&#xff0c;但碍于其高昂的使用费用&#xff0c;“出于学习目的”&#xff0c;我们一般使用的都是Patch版本&#xff08;在版权意识日趋加强的当下&#xff0c;不要提那两个字&#x…

面试题React

1.React Fiber是什么&#xff1f; 在 React V16 将调度算法进行了重构&#xff0c; 将之前的 stack reconciler 重构成新版的 fiber reconciler&#xff0c;变成了具有链表和指针的 单链表树遍历算法。通过指针映射&#xff0c;每个单元都记录着遍历当下的上一步与下一步&…

接口测试用例编写和接口测试模板

一、简介 接口测试区别于传统意义上的系统测试&#xff0c;下面介绍接口测试用例和接口测试报告。 二、接口测试用例模板 功能测试用例最重要的两个因素是测试步骤和预期结果&#xff0c;接口测试属于功能测试&#xff0c;所以同理。接口测试的步骤中&#xff0c;最重要的是将…