Git 提交代码日志信息
前言
在项目中经常用到git提交代码,每次提交时需要添加日志信息,那么一套规范的日志信息会让整个git仓库看起来赏心悦目!
以下是Git 提交代码日志信息的建议:
一、格式规范
-
标题(Subject)
- 标题是日志信息中最重要的部分,应该简洁明了。它应该在 50 个字符以内,以大写字母开头,结尾不要有句号。例如:
ADD: New user authentication feature
。 - 尽量使用祈使语气,像 “Add”“Fix”“Update” 等动词开头,这样可以清楚地表明此次提交的动作。
- 标题是日志信息中最重要的部分,应该简洁明了。它应该在 50 个字符以内,以大写字母开头,结尾不要有句号。例如:
-
正文(Body)
- 如果标题不足以描述提交的详细内容,可以添加正文。正文应该详细说明提交的原因、目的和所做的更改。每一行的长度尽量不要超过 72 个字符,这样可以保证在各种终端中显示良好。
- 正文和标题之间应该有一个空行分隔。例如:
ADD: New user authentication featureThis commit adds a new authentication feature for users. It includes a password hashing mechanism and a login session management system. The password hashing uses the bcrypt library to securely store user passwords. The session management system keeps track of user logins and logouts, allowing for better security and user experience.
- Footer(脚注)
- 脚注部分可以用来引用相关的问题编号(如果是在一个问题追踪系统下工作)、关联的其他提交等信息。例如:
ADD: New user authentication featureThis commit adds a new authentication feature for users. It includes a password hashing mechanism and a login session management system.Closes #123
这里Closes #123
表示此次提交解决了编号为 123 的问题。
二、内容规范
-
功能相关提交
-
新增功能(Add)
- 当添加新的功能代码时,在日志中要清楚地描述新功能是什么,它的用途,以及可能对其他部分的影响。例如,添加一个新的 API 端点,要说明端点的功能、输入输出参数等。
-
修改功能(Update)
- 对于功能的修改,要说明修改的原因。是为了优化性能、修复漏洞还是改善用户体验?并且要提及修改的范围,比如修改了某个函数的算法,要说明这个函数之前的问题和现在的改进之处。
-
删除功能(Remove)
- 记录删除功能的原因,如功能已过时、存在安全隐患或者被更好的解决方案替代。同时,要说明删除功能可能会对系统产生的影响,比如是否有其他模块依赖这个功能,是否需要对相关的配置或文档进行调整。
-
-
修复相关提交
-
Bug 修复(Fix)
- 明确指出修复的 Bug 是什么,如何重现这个 Bug(如果可能的话),以及修复的方法。例如:
FIX: Resolve a division - by - zero error in the calculation function. The error occurred when the input value was zero. The fix is to add a condition to check for zero input and return a default value instead.
- 明确指出修复的 Bug 是什么,如何重现这个 Bug(如果可能的话),以及修复的方法。例如:
-
-
代码结构和格式相关提交
-
代码重构(Refactor)
- 解释重构的目的,如提高代码的可读性、可维护性或者性能。提及重构的主要部分,例如重命名了哪些函数、移动了哪些模块等。例如:
REFACTOR: Rename the 'calculateTotal' function to 'computeTotalPrice' for better naming convention and move it to the 'pricing' module to improve code organization.
- 解释重构的目的,如提高代码的可读性、可维护性或者性能。提及重构的主要部分,例如重命名了哪些函数、移动了哪些模块等。例如:
-
代码格式调整(Format)
- 简单说明代码格式调整的范围,如是否是整个文件的缩进规范调整,还是只针对某个代码块的空格清理等。可以提及遵循的代码风格指南,例如:
FORMAT: Adjust the indentation of the 'user - management' module to follow the PEP8 style guide.
- 简单说明代码格式调整的范围,如是否是整个文件的缩进规范调整,还是只针对某个代码块的空格清理等。可以提及遵循的代码风格指南,例如:
-
三、其他规范
-
原子性提交
- 尽量使每次提交都是一个原子操作,即每个提交只做一件事情。这样可以让日志信息更清晰,也方便在需要回滚操作时只撤销相关的部分。例如,不要在一个提交中同时添加一个新功能和修复一个 Bug,应该分成两个独立的提交。
-
使用分支相关的日志信息(如果适用)
- 当在分支上工作时,在合并分支的提交日志中,可以提及分支的名称和合并的目的。例如:
MERGE: Merge the 'feature - authentication - upgrade' branch to the 'main' branch. This brings in the latest authentication improvements.
- 当在分支上工作时,在合并分支的提交日志中,可以提及分支的名称和合并的目的。例如:
四、规范带来的优点
规范的 Git 代码提交日志有以下诸多好处:
-
提高代码可读性与可维护性
- 清晰的日志能够让开发团队成员(包括未来接手代码的开发者)快速理解代码的变更历史。无论是新增功能、修改 Bug 还是代码重构,通过阅读日志就能知道每次提交的意图,减少理解代码的时间成本。
- 方便定位问题,当系统出现故障或异常时,可以通过查看提交日志追溯可能导致问题的代码变更,从而更高效地进行问题排查和修复。
-
助力团队协作
- 对于代码审查,规范的日志可以让审查者迅速了解提交的目的和范围,有助于审查者集中精力关注重点部分,提高审查效率。
- 促进团队成员之间的沟通,非技术人员(如项目经理)也能通过通俗易懂的日志大致了解代码变更对项目的影响,加强技术和非技术人员之间的交流。
-
有效管理项目进度与版本发布
- 与问题跟踪系统紧密结合的日志可以直观地反映问题的解决进度,便于项目管理者监控项目的状态。
- 在版本发布时,能够根据提交日志准确地生成版本发布说明,让用户和其他利益相关者清楚地知道版本更新的内容。
-
遵循行业与团队文化标准
- 符合行业习惯和开源社区标准可以提升项目的专业性,方便与其他项目或开源软件进行合作或交流。
- 遵循团队内部文化和规范,有利于团队形成统一的工作流程,提高工作效率和代码质量。
五、总结
总结来说,规范的 Git 代码提交日志是提升代码管理质量、加强团队协作、有效沟通项目进度和维护软件版本的重要工具,能够在软件开发的各个环节发挥积极作用。
相关文章:
Git 提交代码日志信息
前言 在项目中经常用到git提交代码,每次提交时需要添加日志信息,那么一套规范的日志信息会让整个git仓库看起来赏心悦目! 以下是Git 提交代码日志信息的建议: 一、格式规范 标题(Subject) 标题是日志信息中…...

Request method ‘POST‘ not supported(500)
前端路径检查 查看前端的请求路径地址、请求类型、方法名是否正确,结果没问题 后端服务检查 查看后端的传参uri、传参类型、方法名,结果没问题 nacos服务名检查 检查注册的服务是否对应(我这里是后端的服务名是‘ydlh-gatway’,服务列表走…...
终端环境下关闭显示器
终端环境下关闭显示器 使用vbetool vbetool 使用 lrmi 来运行视频 BIOS 中的代码。目前,它能够更改 DPMS 状态、保存/恢复视频卡状态并尝试从头开始初始化视频卡。 vbetool dpms off...
常见排序算法总结 (三) - 归并排序与归并分治
归并排序 算法思想 将数组元素不断地拆分,直到每一组中只包含一个元素,单个元素天然有序。之后用归并的方式收集跨组的元素,最终形成整个区间上有序的序列。 稳定性分析 归并排序是稳定的,拆分数组时会自然地将元素分成有先后…...
【后端开发】Go语言编程实践,Goroutines和Channels,基于共享变量的并发,反射与底层编程
【后端开发】Go语言编程实践,Goroutines和Channels,基于共享变量的并发,反射与底层编程 【后端开发】Go语言高级编程,CGO、Go汇编语言、RPC实现、Web框架实现、分布式系统 文章目录 1、并发基础, Goroutines和Channels2、基于共享…...

PyTorch 2.5.1: Bugs修复版发布
一,前言 在深度学习框架的不断迭代中,PyTorch 社区始终致力于提供更稳定、更高效的工具。最近,PyTorch 2.5.1 版本正式发布,这个版本主要针对 2.5.0 中发现的问题进行了修复,以提升用户体验。 二,PyTorch 2…...

【Android】组件化嘻嘻嘻gradle耶耶耶
文章目录 Gradle基础总结:gradle-wrapper项目根目录下的 build.gradlesetting.gradle模块中的 build.gradlelocal.properties 和 gradle.properties 组件化:项目下新建一个Gradle文件定义一个ext扩展区域config.gradle全局基础配置(使用在项目…...

vulnhub靶场【哈利波特】三部曲之Aragog
前言 使用virtual box虚拟机 靶机:Aragog : 192.168.1.101 攻击:kali : 192.168.1.16 主机发现 使用arp-scan -l扫描,在同一虚拟网卡下 信息收集 使用nmap扫描 发现22端口SSH服务,openssh 80端口HTTP服务,Apach…...

HarmonyOS开发中,如何高效定位并分析内存泄露相关问题
HarmonyOS开发中,如何高效定位并分析内存泄露相关问题 (1)Allocation的应用调试方式Memory泳道Native Allocation泳道 (2)Snapshot(3)ASan的应用使用约束配置参数使能ASan方式一方式二 启用ASanASan检测异常码 (4)HWASan的应用功能介绍约束条件使能HWASan方式一方式…...

java调用ai模型:使用国产通义千问完成基于知识库的问答
整体介绍: 基于RAG(Retrieval-Augmented Generation)技术,可以实现一个高效的Java智能问答客服机器人。核心思路是将预先准备的问答QA文档(例如Word格式文件)导入系统,通过数据清洗、向量化处理…...

2023年第十四届蓝桥杯Scratch国赛真题—推箱子
推箱子 程序演示及其源码解析,可前往: https://www.hixinao.com/scratch/creation/show-188.html 若需在线编程,在线测评模考,助力赛事可自行前往题库中心,按需查找: https://www.hixinao.com/ 题库涵盖…...
银河麒麟V10-SP1设置redis开机自启
前言: redis安装请看:银河麒麟V10-SP1离线安装redis5.0.1_银河麒麟v10 redis5.0-CSDN博客 一、编辑自启文件 vim /etc/systemd/system/redis.service [Unit] DescriptionRedis In-Memory Data Store Afternetwork.target [Service] Typeforking ExecS…...

释放超凡性能,打造鸿蒙原生游戏卓越体验
11月26日在华为Mate品牌盛典上,全新Mate70系列及多款全场景新品正式亮相。在游戏领域,HarmonyOS NEXT加持下游戏的性能得到充分释放。HarmonyOS SDK为开发者提供了软硬协同的系统级图形加速解决方案——Graphics Accelerate Kit(图形加速服务…...

Node.js 实战: 爬取百度新闻并序列化 - 完整教程
很多时候我们需要爬取一些公开的网页内容来做一些数据分析和统计。而多数时候,大家会用到python ,因为实现起来很方便。但是其实Node.js 用来爬取网络内容,也是非常强大的。 今天我向大家介绍一下我自己写的一个百度新闻的爬虫,可…...

106.【C语言】数据结构之二叉树的三种递归遍历方式
目录 1.知识回顾 2.分析二叉树的三种遍历方式 1.总览 2.前序遍历 3.中序遍历 4.后序遍历 5.层序遍历 3.代码实现 1.准备工作 2.前序遍历函数PreOrder 测试结果 3.中序遍历函数InOrder 测试结果 4.后序遍历函数PostOrder 测试结果 4.底层分析 1.知识回顾 在99.…...

qt QToolButton详解
1、概述 QToolButton是Qt框架中的一个控件,它继承自QAbstractButton。QToolButton通常用于工具栏(QToolBar)中,提供了一种快速访问命令或选项的方式。与普通的QPushButton按钮相比,QToolButton通常只显示一个图标而不…...

2024年大热,Access平替升级方案,也适合Excel用户
欢迎各位看官,您来了,就对了! 您多半是Access忠实粉丝,至少是excel用户,亦或是WPS用户吧。那就对了,今天的分享肯定对您有用。 本文1100字,阅读时长2分50秒! 现实总是不尽人意&am…...
探索Scala的模式匹配:身份证识别与等级判定!!! #Scala # scala #匹配模式
在Scala编程语言中,模式匹配是一个强大且表达力丰富的特性,它允许我们以声明式的方式处理多种情况。今天,我们将通过两个有趣的例子来展示Scala模式匹配的魅力:身份证号识别和等级判定。 1. 身份证号识别:定位你的家乡…...
python数据分析之爬虫基础:爬虫介绍以及urllib详解
前言 在数据分析中,爬虫有着很大作用,可以自动爬取网页中提取的大量的数据,比如从电商网站手机商品信息,为市场分析提供数据基础。也可以补充数据集、检测动态变化等一系列作用。可以说在数据分析中有着相当大的作用!…...
【星海随笔】syslinux
Ubuntu相关资料 https://www.pugetsystems.com/labs/hpc/ubuntu-22-04-server-autoinstall-iso/#Step_2_Unpack_files_and_partition_images_from_the_Ubuntu_2204_live_server_ISO https://launchpad.net/ubuntu/source/squashfs-tools/1:4.6.1-1build1 sudo tar -xf my_compu…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...