一套自用的git提交规范,可清晰的识别到关联的任务/bug - 实践

news/2025/9/24 13:50:09/文章来源:https://www.cnblogs.com/lxjshuju/p/19109090

分享一套自用的git提交规范,可清晰的识别到关联的任务/bug

一、提交信息的基本结构

推荐使用约定式提交的一种变体,结构如下:

<类型>(<范围>): <主题>[#<禅道-ID>]<正文>(可选)<脚注>(可选)

一个完整的、优秀的示例:

feat(用户模块): 增加用户手机号绑定功能 [#12345]
- 新增手机号验证接口(/api/user/bind_mobile)
- 用户表增加 mobile 和 mobile_verified 字段
- 添加发送短信验证码的功能
关联禅道需求: http://your-zentao-domain/zentao/story-view-12345.html

二、核心组成部分详解

1. 类型 (Type) - 必选

表示本次提交的意图。以下是类型定义:

类型关键字含义适用场景禅道关联
feat新功能开发新的需求、功能关联 需求ID (如 #123
)
fix修复Bug修复测试提出的或已知的Bug关联 BugID (如 #456
)
docs文档更新修改文档(如README、接口文档),不涉及代码可关联需求/BugID,或无
style代码样式调整代码格式、缩进、分号等(不改变逻辑)通常无关联
refactor代码重构重构代码,既非修Bug也非加功能可关联需求ID(如性能优化需求)
test测试相关增加或修改测试用例可关联需求/BugID
chore杂项事务构建流程、依赖管理、工具脚本(如webpack配置)通常无关联
2. 范围 (Scope) - 可选

用括号括起来,说明提交影响的范围。这有助于快速定位变更。

  • 例如: 用户模块订单模块登录页API数据库等。
  • 如果修改范围很杂或难以概括,可以省略 (scope)
3. 主题 (Subject) - 必选

对本次提交的简短描述,不超过50个字符。

4. 禅道 ID - 强烈推荐

这是与禅道联动的关键!使用 # + ID 的形式。

  • 格式: [#12345]
  • 位置: 通常放在主题的末尾。
  • 作用: 很多工具(如GitLab, Jenkins)可以自动解析这个格式,生成超链接。即使不能,也极其便于人工搜索。
5. 正文 (Body) - 可选

在主题之后空一行,编写更详细的说明。

6. 脚注 (Footer) - 可选

通常用于放置不兼容的变动(以 BREAKING CHANGE: 开头)或关闭Issue(如 Closes #123, #245)。在你的场景下,可以放禅道需求的完整URL。

三、具体示例

示例1:完成一个需求

禅道需求: ID 为 10086,标题是“【用户中心】需要支持修改头像功能”

feat(用户中心): 支持用户上传和裁剪头像 [#10086]
- 新增头像上传接口 POST /api/user/avatar
- 新增图片裁剪组件(基于Cropper.js)
- 用户表增加 avatar_url 字段存储头像地址
See: http://zed.xxx.com/zentao/story-view-10086.html
示例2:修复一个Bug

禅道Bug: ID 为 50020,标题是“商品详情页加入购物车按钮点击无效”

fix(商品页): 修复加入购物车按钮点击无效的问题 [#50020]
修复了因事件绑定函数名错误导致点击无效的问题,将 `addToCart` 更正为 `addToCart`See: http://zed.xxx.com/zentao/bug-view-50020.html
示例3:处理多个任务(一次提交解决一个需求和一个Bug)
feat(订单): 增加订单导出为Excel的功能 [#10010]
fix(订单): 修复导出列表时间显示错误的问题 [#50015]
- 新增 POI 依赖用于生成 Excel
- 修复时区转换工具类的一个逻辑错误

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

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

相关文章

学做ps的软件的网站有哪些内容石家庄网站建设王道下拉棒

博主介绍&#xff1a;黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者&#xff0c;CSDN博客专家&#xff0c;在线教育专家&#xff0c;CSDN钻石讲师&#xff1b;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…

高平市规建设局网站学生个人网站布局

这年头&#xff0c;在职场不但要会做&#xff0c;还要会说。 会说还不能平铺直叙的说&#xff0c;还要能把普通的工作说出话来&#xff0c;这就需要一些“考究”的用词。尤其是在某些头部企业的带领下&#xff0c;业务不够、产品不行、解决方案不够新&#xff0c;就用华丽的辞…

撕开厂商锁定黑箱:MyEMS 如何用开源代码夺回能源管理的 “自主控制权”?

在能源管理数字化浪潮中,许多企业曾满怀期待引入专业系统,却最终陷入深深的困境:系统建成之日,竟是受制于人之时。高昂的许可费、昂贵的定制开发、无休止的升级服务费、封闭的数据格式……这些看似专业的能源管理系…

继续 Vibe Coding 撸工具:Markdown写作 + 一键发布

又是感谢Vibe Coding的一天,最近尝试用 CodyBuddy 来重构一下之前的文章发布工具OpenWrite,经过一周的迭代,现在基本差不多恢复之前80%的功能了。如果你跟我一样,平时写点东西,又讨厌自己的文章被别人搬运,那么可…

C造桥与砍树

链接 题意: 有n个带权的点以及参数k,要求生成一个最小生成树,每个点之间的边权为两个点权之和模k的结果 思路: 对所有权值模k后 发现对于一个权值为val的结点u,链接它的最优结点是 现在还没进入生成树的 (权值最…

基于衍射神经网络的光学高速粒子分类体系A1(未做完)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Keil uVision5 MDK 5.42安装教程(支持ARM Cortex全系列开发)

软件介绍 Keil uVision5 MDK 5.42是ARM公司推出的嵌入式处理器集成开发环境最新版本,专为Cortex-M、Cortex-A、ARM7、ARM9等ARM内核处理器设计。该版本集成ARM Compiler编译器、μVision IDE调试器及Flash烧写模块,支…

2024 ICPC ECfinal E

E. Corrupted Scoreboard Log 大模拟,暴搜。 预处理出 \(0\sim 299\) 和 \(1\sim 100\) 的组合字符串,后续处理出每个 \(\text{try}\) 前面的数字就能得到是哪些组合了,注意 \(\text{22tries}\) 这种还可以拆成 \(\…

自助建子站wordpress粉色主题

1、引言 用SHT30测温湿度&#xff0c;SHT30是I2C通信总线&#xff0c;具体信息去看Datasheet文档&#xff1a;https://pdf1.alldatasheet.com/datasheet-pdf/view/897974/ETC2/SHT30.html。操作系统是Linux&#xff0c;机器是CM3计算板&#xff0c;当然也可以是树莓派和其他主…

从Void到Task<PublishAggregateResult>:一次服务方法返回类型重构的纠结与决策

今天原本想美美地完成UI层与Core层通过消息总线实现博客发布的功能。一切都很顺利,直到我重构到 PublishBlog 方法,准备为ApplicationService 写事件处理逻辑时,不然发现不对劲——“不兑!等等,我该怎么把发布结果…

LVGL移植到STM32F4出现无法运行的问题

跟着网上的教程一步步移植LVGL v8.3到STM32F407VET6上,虽然能成功运行,但是在刷新屏幕可能会出现:只刷新了一部分屏幕 整个屏幕都会卡死查阅了很多资料都没解决,在使用别人的Keil工程时,发现代码的优化等级是-O1,…

网站建设的原因有什么给个网址2021年能看的

环境 Windows 11 家庭中文版git version 2.41.0.windows.1 问题情况 在使用 “命令行终端” 和 “Git Bash” 在本地Git仓库敲击命令时&#xff0c;对中文名称文件显示一连串的数字&#xff0c;如下所示&#xff1a;这种情况通常是由于字符编码设置不正确所引起的 解决办法 设置…

如何选择做网站网易企业邮箱忘记密码

&bc_control spec_bdy_width 此参数指定用于边界过渡的格点总行数&#xff0c;默认值为5。此参数只用于真实大气方案。参数的大小至少为spec_zone 和 relax_zone的和。 spec_zone 指定区域(specified zone)的格点数&#xff0c;默认值为 1。指定边条件时起作用。 relax…

网站地图提交入口班级优化大师电脑版

1,先把报错SQL语句拿出来执行&#xff0c;看看是不是报的这个错 ORA-01830: 日期格式图片在转换整个输入字符串之前结束 2&#xff0c;然后查看默认日期格式是不是“YYYY-MM-DD HH24:MI:SS”&#xff08;正确格式&#xff09;。&#xff1b; 执行&#xff1a; SELECT * FRO…

题目记录(Before NOIP2025 ver)

T1. Beautiful Sequence Unraveling 定义 \(dp_{i,j}\) 表示长度为 \(i\),值域在 \([1,j]\) 之间的好序列的个数。发现好序列不好刻画,所以转化为所有序列的数量减去不是好序列的数量。前者很显然,即 \(i^j\)。接下…

专业修复sqlserver master 数据库损坏。

例如一下错误 在重做数据库“master”中的日志记录操作时,日志记录 ID (57081:184:2) 出错。通常,特定故障以前会在操作系统错误日志中记录为错误。请从完整备份还原数据库,或者修复该数据库。 无法在数据库“maste…

78-材料可视化-折线图

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

jenkins job的configure中配置git时 选择的credential为什么不能选择secret认证方式的数据

你在 Jenkins 中配置 Git 时,无法直接选择 "Secret text" 类型的凭证来认证代码仓库,这主要是因为 Git 操作(特别是通过 HTTPS 克隆时)通常需要的是“用户名+密码”组合,而单纯的 Secret text(如 GitH…

Day21继承

继承可实现代码的复用,子类获得父类的属性与方法,且可在此基础上拓展package oop1.Demo5; //在java中,所有的类,都直接或间接继承object //人 父类 public class person /*extends Object*/{public int getMon…

C# Avalonia 15- Animation- ImageWipe

C# Avalonia 15- Animation- ImageWipe在上一个AnimationPlayer例子上进行扩展,让其具备完整的小型动画功能。 AnimationPlayer类public partial class AnimationPlayer : ObservableObject{// ---------------------…