Git Commit的规范及高级使用方法

news2024/11/26 19:26:04

git commit是日常工作中使用率极高的一个命令,但是根据我从业5年的经验来看,大多数人在用git commit命令时都很粗糙,比如git commit -m 后跟的message是五花八门,有用中文的,有用英文的,甚至还有直接跟111的,这些commit,不要说接手的人很难看懂,时间久了估计连提交人自己都忘记咋回事了。

本文我就带大家了解下git commit有哪些规范及高级用法。

咱们先了解一下规范的commit能带来哪些好处

  • 能够让自己和协同自己开发的人员清晰的知道每个commit 的变更内容,方便快速浏览变更历史
  • 可以基于commit的信息进行过滤查找,比如之查找某个版本新增的功能:
git log --oneline --grep "^feat|^fix|^perf"
  • 可以基于规范化的commit生成Change Log
  • 可以根据某些类型的commit 触发构建或者发布流程,比如当type类型为feat、fix时我们才触发CI流程

总之,一个好的commit可以使commit的可读性更好,并且可以实现自动化,那究竟该如何写一个易读的commit呢?

Commit 的规范

commit的规范其实在开源社区中已经很成熟了,大家可以看看GitHub上start数量比较多的开源项目,看下别人的commit信息都是怎么规范的。

这里我们以Docker的commit记录来举例:

 请大家注意我在图中圈红的地方,可以看到每一个commit的最前面,都有一个类似于本次commit类型的说明,是新功能发布(feat),还是文档更新(chore),又或是bug修复(fixbug),都会有一个对应的标识放在commit的最前边,熟悉规范的同事一眼就能看出哪些commit对他来说是有用的。

那我们应该怎么写出规范的commit呢?

我们先来说commit的类型:

类型说明
feat新增功能
fixbug修复
perf性能优化
style代码格式化
test测试用例的新增或更新
ci部署相关文件的改动
docs文档类的变动
chore其他类型
refactor代码简化、删除冗余代码等

我每次在commit的时候,在commit信息前边加上这些类型标识,是不是一下子就清晰起来了,我们在进行git log查询的时候也不需要一个一个去翻了,可以直接根据type筛选出我们最需要的commit记录,效率噶一下就上来了。

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

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

相关文章

小程序搭建教程

小程序搭建流程 随着移动互联网的发展,小程序成为了营销和服务的重要渠道之一。在本文中,我们将介绍如何搭建一个小程序的详细流程,包括公众号申请、支付微信认证费、复用资质申请小程序、开通微信支付、绑定第三方开发平台、添加商品服务内…

基于SpringBoot的企业人力资源管理系统设计与实现

1.引言 随着经济改革开放的发展,企业之间的竞争也越来越激烈,在这样的大环境下,企业要想立于不败之地,不仅要有好的商品,更要有一支强有力的团队,其本质就是人才。企业对人才的需求不断的增加,…

视频剪辑素材网站,免费可商用,赶紧马住~

推荐几个高质量视频素材网站,免费可商用,建议收藏! 菜鸟图库 https://www.sucai999.com/video.html?vNTYxMjky 菜鸟图库虽然是一个设计网站,但它还有非常丰富的视频和音频素材,视频素材全部都是高清无水印&#xff…

485远传水表抄表系统

485远传水表抄表系统是一种基于RS-485通信协议的远程抄表系统,它利用现代通信技术,实现了对水表数据的远程采集、传输和处理,是智慧城市建设的重要组成部分。本文将从以下几个方面对485远传水表抄表系统进行全面介绍: 一、系统组成…

【Spring Boot】Spring Boot的系统配置 — 系统配置文件

系统配置文件 Spring Boot的系统配置文件,包括application.properties和application.yml配置文件的使用以及YML和Properties配置文件有什么区别,最后介绍如何更改Spring Boot的启动图案。 1.application.properties Spring Boot支持两种不同格式的配置…

pyqt结合深度学习框架做系统

时隔将近两个月,我胡汉三又回来啦!!!将近两个月玩了一个月,半个月面试,半个月吃土沉淀(有收获)也投出去一篇论文(外审中,关于深度学习神经网络改进的一篇病害…

如何将代理IP集成到自动化测试框架中?

自动化测试框架是现代软件工程中不可或缺的一部分。它们提供了许多好处,包括:更快的测试速度,更高的可靠性和更广泛的测试覆盖范围。然而,在测试过程中,有些网站可能需要使用代理IP,这是因为一些网站会限制…

踩坑记录:xorm的sql()函数后无法使用FindAndCount()

一、起因 懒省事想用 sql 写个有连表操作的分页查询语句,看到 xorm 中 sql 要和代码紧密纠缠在一起就不爽,所有就想用 xorm 中的 session.SQL(sql).Limit(size, offset).FindAndCount() 方法解决。不曾想。。。 sql: expected 15 destination argument…

[计算机入门] 磁盘、磁盘分区、盘符、卷标

2.5 磁盘、磁盘分区、盘符、卷标 磁盘:指计算机中存储数据和文件的物理设备,也称为硬盘。 磁盘分区:指将一个磁盘分成多个逻辑部分,每个部分可以独立地进行管理和操作,例如格式化、安装操作系统等。 如上图&#xf…

AWS 中文入门开发教学 46- S3 - AWS的存储核心, Simple Storage Service

知识点 S3的基础知识官网 https://aws.amazon.com/cn/s3 基础介绍 Amazon Simple Storage Service (Amazon S3) 是一种对象存储服务,(其实就是文件存储) 提供行业领先的可扩展性、数据可用性、安全性和性能。这意味着各种规模和行业的客户都可以使用 S3 来存储并保护各种…

归并排序—C语言实现

前言 🥰在学数据结构的第一节课就知道了数据结构课程是要管理并且学会操作数据,当然操作数据首先想到的就是数据的排序,排过顺序的数据的使用价值才够大。前面我们学习了顺序表也学习了链表等等,这些就是储存数据的方法&#xff0…

2021机器学习阶段性复盘

文章目录 特征选择一、GBDT和Xgboost简介二、 GBDTLR协同过滤,SVD的劣势:极大化似然估计Wide&DeepxDeepFM朴素贝叶斯SVM转为拉格朗日函数转为对偶问题 决策树分类交叉熵损失函数数据预处理连续型特征为什么取对数 深度学习激活函数的作用Softmax与Si…

剑指offer64.求1+2+...+n

看到题脑子里就有了想法,这还不简单,直接用递归啊,return一个nsumNums(n-1)写完之后发现到了0你得终止但是不能用if等语句你没办法终止,想了大概十分钟放弃了,这没办法终止啊,然后看了题解。 class Soluti…

QCFS-related work

一、代码 def replace_maxpool2d_by_avgpool2d(model): # 将模型中的所有MaxPool2d层替换为AvgPool2d层。for name, module in model._modules.items(): # 函数使用递归方式遍历模型的所有模块,通过model._modules.items()获取模型的子模块以及它们对应的名称。if …

Java电子招投标采购系统源码-适合于招标代理、政府采购、企业采购

功能描述 1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。 2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所…

【Elasticsearch】文档操作

目录 3.文档操作 3.1.新增文档 3.2.查询文档 3.3.删除文档 3.4.修改文档 3.4.1.全量修改 3.4.2.增量修改 3.5.总结 3.文档操作 3.1.新增文档 语法: POST /索引库名/_doc/文档id {"字段1": "值1","字段2": "值2"…

软件测试当中的测试用例模板,仅供参考

测试用例这块知识、经验,小酋在前面陆续都讲完了。这章提供几种用例模板,作为这块知识的收尾。 - 1 - 测试用例(主指功能测试用例模板)的内容通常包括测试目标(目的),需求标示(一般…

Background-2 盲注关卡 sqli-Labs Less5-Less-6

文章目录 一、Less-5-less-6一、利用left(database(),1)进行尝试1.查看版本号2.查看数据库的长度3.猜测数据库的第一位 二、利用substr(),ascii()函数进行尝试三、利用regexp()获取(2)中users表中的列四、利用ord(),mid函数获取us…

elasticsearch插件ik分词器,无法启动解决方案

首先7以后的版本一定要与es的版本保持一致下载包只能下载这个路径的文件,版本号与自己的es版本保持一致 https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.6.0/elasticsearch-analysis-ik-8.6.0.zip这里可以直接替换 docker容器无法启动&…

SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“

一、现象说明 最近在调试 RabbitMQ 程序的时候,日志里如下错误: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/cod…