当前位置: 首页 > news >正文

Git 提交代码日志信息

前言

         在项目中经常用到git提交代码,每次提交时需要添加日志信息,那么一套规范的日志信息会让整个git仓库看起来赏心悦目!

          以下是Git 提交代码日志信息的建议:

一、格式规范

  1. 标题(Subject)

    • 标题是日志信息中最重要的部分,应该简洁明了。它应该在 50 个字符以内,以大写字母开头,结尾不要有句号。例如:ADD: New user authentication feature
    • 尽量使用祈使语气,像 “Add”“Fix”“Update” 等动词开头,这样可以清楚地表明此次提交的动作。
  2. 正文(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.

  1. 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 的问题。

二、内容规范

  1. 功能相关提交

    • 新增功能(Add)
      • 当添加新的功能代码时,在日志中要清楚地描述新功能是什么,它的用途,以及可能对其他部分的影响。例如,添加一个新的 API 端点,要说明端点的功能、输入输出参数等。
    • 修改功能(Update)
      • 对于功能的修改,要说明修改的原因。是为了优化性能、修复漏洞还是改善用户体验?并且要提及修改的范围,比如修改了某个函数的算法,要说明这个函数之前的问题和现在的改进之处。
    • 删除功能(Remove)
      • 记录删除功能的原因,如功能已过时、存在安全隐患或者被更好的解决方案替代。同时,要说明删除功能可能会对系统产生的影响,比如是否有其他模块依赖这个功能,是否需要对相关的配置或文档进行调整。
  2. 修复相关提交

    • 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.
  3. 代码结构和格式相关提交

    • 代码重构(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.

三、其他规范

  1. 原子性提交

    • 尽量使每次提交都是一个原子操作,即每个提交只做一件事情。这样可以让日志信息更清晰,也方便在需要回滚操作时只撤销相关的部分。例如,不要在一个提交中同时添加一个新功能和修复一个 Bug,应该分成两个独立的提交。
  2. 使用分支相关的日志信息(如果适用)

    • 当在分支上工作时,在合并分支的提交日志中,可以提及分支的名称和合并的目的。例如:MERGE: Merge the 'feature - authentication - upgrade' branch to the 'main' branch. This brings in the latest authentication improvements.

四、规范带来的优点

规范的 Git 代码提交日志有以下诸多好处:

  1. 提高代码可读性与可维护性

    • 清晰的日志能够让开发团队成员(包括未来接手代码的开发者)快速理解代码的变更历史。无论是新增功能、修改 Bug 还是代码重构,通过阅读日志就能知道每次提交的意图,减少理解代码的时间成本。
    • 方便定位问题,当系统出现故障或异常时,可以通过查看提交日志追溯可能导致问题的代码变更,从而更高效地进行问题排查和修复。
  2. 助力团队协作

    • 对于代码审查,规范的日志可以让审查者迅速了解提交的目的和范围,有助于审查者集中精力关注重点部分,提高审查效率。
    • 促进团队成员之间的沟通,非技术人员(如项目经理)也能通过通俗易懂的日志大致了解代码变更对项目的影响,加强技术和非技术人员之间的交流。
  3. 有效管理项目进度与版本发布

    • 与问题跟踪系统紧密结合的日志可以直观地反映问题的解决进度,便于项目管理者监控项目的状态。
    • 在版本发布时,能够根据提交日志准确地生成版本发布说明,让用户和其他利益相关者清楚地知道版本更新的内容。
  4. 遵循行业与团队文化标准

    • 符合行业习惯和开源社区标准可以提升项目的专业性,方便与其他项目或开源软件进行合作或交流。
    • 遵循团队内部文化和规范,有利于团队形成统一的工作流程,提高工作效率和代码质量。

五、总结

        总结来说,规范的 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…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

ESP32读取DHT11温湿度数据

芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

OpenLayers 分屏对比(地图联动)

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...

【生成模型】视频生成论文调研

工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...

Windows 下端口占用排查与释放全攻略

Windows 下端口占用排查与释放全攻略​ 在开发和运维过程中,经常会遇到端口被占用的问题(如 8080、3306 等常用端口)。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口,帮助你高效解决此类问题。​ 一、准…...