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

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.hqwc.cn/news/20149.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codeforces Round 882 (Div. 2)(视频讲解A——D)

[TOC](Codeforces Round 882 (Div. 2)&#xff08;视频讲解A——D&#xff09;) 讲解在B站&#xff1a;Codeforces Round 882 (Div. 2)&#xff08;视频讲解A——D&#xff09; A The Man who became a God #include<bits/stdc.h> #define endl \n #define INF 0x3f3…

【分布式应用】zookeeper集群

目录 一、zookeeper概述1.1zookeeper工作机制1.2Zookeeper 数据结构1.3Zookeeper 应用场景1.4Zookeeper 选举机制第一次启动选举机制**非第一次启动选举机制 二、部署 Zookeeper 集群2.1环境配置2.2安装 Zookeeper 一、zookeeper概述 Zookeeper是一个开源的分布式的&#xff0c…

机械臂与RealSense相机手眼标定

环境&#xff1a; 本文主要使用kinova mico机械臂 RealSense D435i深度相机进行了eye to hand的手眼标定。 系统环境&#xff1a;Ubuntu18.04&#xff0c;ROS Melodic 硬件&#xff1a;Kinova mico&#xff0c;RealSense D435i 特别注意&#xff1a;经测试&#xff0c;本方法…

【Python】Python实现串口通信(Python+Stm32)

&#x1f389;欢迎来到Python专栏~Python实现串口通信 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;Python学习专栏 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望…

Js语法学习实战 -数据类型

Js语法学习实战 -数据类型 1. undefined2. null3. Boolean4. Number5. String5.1 常用方法5.2 字符串迭代遍历方法5.3 字符串替换 6. Symbol类型7. Object7.1 基本使用7.2 对象遍历7.3 复制对象方法 8. 数组 - Array8.1 数组的常用方法8.2 数组遍历 9. Function JS语法学习实战…

18.JavaWeb-JWT(登录、鉴权)

1.CSRF跨站请求伪造 跨站请求伪造&#xff08;英语&#xff1a;Cross-site request forgery&#xff09;&#xff0c;也被称为 one-click attack 或者 session riding&#xff0c;通常缩写为 CSRF 或者 XSRF&#xff0c; 是一种挟制用户在当前已登录的Web应用程序上执行非本意的…

postman测试传参格式

postman测试传参格式 创建User实体 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data NoArgsConstructor AllArgsConstructor public class User {private Integer id;private String name; }接口参数是集合 PostMapping("…

第50步 深度学习图像识别:Data-efficient Image Transformers建模(Pytorch)

基于WIN10的64位系统演示 一、写在前面 &#xff08;1&#xff09;Data-efficient Image Transformers Data-efficient Image Transformers (DeiT)是一种用于图像分类的新型模型&#xff0c;由Facebook AI在2020年底提出。这种方法基于视觉Transformer&#xff0c;通过训练策…

LoRA指令微调——源码解析

目录 1. lit-llama工程2. LoRA部分3. 代码部分4. LoRA模型文件 &#xff08;本次博文的LoRA代码主要基于lit-llama工程&#xff09; 1. lit-llama工程 lit-llama是一个大语言模型的工程&#xff0c;可用于语言模型的训练、测试等优点&#xff1a;很简洁&#xff0c;代码也很容…

健身房综合云管理项目

博主简介&#xff1a; 河南沐斯特网络科技有限公司技术顾问&#xff1b; 天津集创科技有限公司创始人之一兼前端开发工程师/python开发&#xff1b; 第十四届中国服务外包大赛华北地区(九个省加自治区直辖市)三等奖&#xff1b; CSDN官方内容合伙人&#xff0c; CSDN.2023年…

C++_简单模拟实现string的增删查改

目录 一、模拟reserve 二、模拟push_back 三、模拟append 四、模拟operator 五、模拟insert 六、模拟erase 七、模拟find 八、模拟substr 一、模拟reserve 要添加数据&#xff0c;首先要考虑的是扩容。有必要用reserve辅助扩容。reserve的作用就是给一个预期的值作为扩…

2023金九银十大厂 Java 面试八股文大全(整理版)附答案详解

Java 面试八股文有必要背吗&#xff1f; 我的回答是&#xff1a;很有必要。你可以讨厌这种模式&#xff0c;但你一定要去背&#xff0c;因为不背你就进不了大厂。现如今&#xff0c;Java 面试的本质就是八股文&#xff0c;把八股文面试题背好&#xff0c;面试才有可能表现好。…