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

Git Commit Message

1. 这篇文章解决什么问题?

commit message看起来只是提交时顺手写的一句话,但它会直接影响后续维护体验。

糟糕的提交信息通常长这样:

update fix 修改 wip final

当项目过一段时间再回头看,就很难知道:

这次提交到底改了什么 为什么要这么改 影响范围在哪里 能不能安全回退

这篇只讲提交信息怎么写得清楚一点。


2. commit message 的作用

提交信息不是给 Git 看的,Git 只关心提交对象和文件快照。

提交信息主要是给人看的:

给未来的自己看 给队友 code review 时看 给排查 bug 时看 给生成 changelog 时看 给回退提交时看

一个好的 commit message 至少应该回答:

这次提交做了什么? 属于哪类改动? 影响哪个模块?

3. 推荐格式

个人项目里可以使用一个简化版格式:

<type>(<scope>): <summary>

例如:

feat(redis): add RESP array parser fix(http): handle keep-alive timeout docs(git): add rollback note refactor(net): simplify event loop cleanup

三个部分分别是:

type 改动类型 scope 影响范围 summary 简短说明

如果项目很小,scope可以省略:

fix: handle empty request body

4. 常见 type 怎么选?

常用类型:

feat 新功能 fix 修复 bug docs 文档修改 style 代码格式,不影响逻辑 refactor 重构,不新增功能也不修 bug test 测试相关 chore 构建、脚本、依赖、杂项维护 perf 性能优化 build 构建系统相关 ci CI 配置相关

不用一开始就追求非常复杂的规范。

对个人 C++ 后端项目来说,最常用的通常是:

feat fix docs refactor test chore

5. scope 写什么?

scope表示影响范围。

可以写模块名:

feat(parser): add bulk string parser fix(server): close fd on accept failure

也可以写目录或主题:

docs(git): add conflict resolution note chore(cmake): enable warnings

C++ 后端项目里常见 scope:

net http redis parser storage thread cmake test docs git

scope不需要特别精确,但应该让人一眼知道这次提交主要影响哪里。


6. summary 怎么写?

summary是一句短说明。

推荐习惯:

使用动词开头 说明这次提交做了什么 不要写太空泛的话

比较好的例子:

fix(http): reject malformed request line feat(redis): support integer reply encoding docs(git): explain reset and revert

不太好的例子:

fix bug update code change files work in progress

原因是后者没有告诉别人到底改了什么。


7. 一次 commit 应该多大?

一个实用判断是:

一次 commit 只做一件完整的事

例如这些可以分开:

1. 新增一个 RESP parser 2. 给 parser 添加测试 3. 调整 README 文档 4. 格式化旧代码

不推荐一个 commit 同时包含:

修 bug 改 CMake 重命名目录 格式化全项目 顺手改 README

这样的提交以后很难 review,也很难回退。


8. 提交前先检查什么?

提交前推荐固定流程:

gitstatusgitdiffgitdiff--cached

然后再提交:

gitaddsrc/parser.cpp tests/parser_test.cppgitcommit-m"feat(parser): support array reply parsing"

这里不建议总是无脑:

gitadd.

因为它可能把临时文件、调试文件、错误修改一起提交进去。


9. 多行 commit message

如果一次提交比较复杂,可以使用多行说明:

gitcommit

进入编辑器后写:

fix(http): close connection on parse failure The previous code kept the socket open after a malformed request. This could leave idle connections in the event loop longer than needed. Also add a regression test for an invalid request line.

第一行是摘要。

空一行后写更详细的说明:

为什么改 怎么改 有什么影响

个人学习项目不一定每次都写多行,但复杂提交值得写清楚。


10. amend 最近一次提交信息

如果刚提交完发现 message 写错了:

gitcommit--amend-m"docs(git): add commit message guide"

如果需要打开编辑器修改:

gitcommit--amend

注意:

amend 会生成新的 commit hash 如果已经 push 到共享分支,不要随便 amend

这一点和06里的回退逻辑一致。


11. 常见提交信息示例

文档:

gitcommit-m"docs(git): add gitignore note"

新增功能:

gitcommit-m"feat(redis): parse simple string reply"

修 bug:

gitcommit-m"fix(net): handle epoll wait interruption"

重构:

gitcommit-m"refactor(server): split request parsing logic"

测试:

gitcommit-m"test(parser): cover invalid bulk string"

构建维护:

gitcommit-m"chore(cmake): enable compile warnings"

12. 不要把提交信息写成流水账

不推荐:

modify parser and add some files

更推荐:

feat(parser): support RESP bulk string

不推荐:

fix

更推荐:

fix(server): avoid double close on client fd

提交信息不需要很长,但要有信息量。


13. 一句话总结

好的 commit message 应该让人不用打开 diff,也能大致知道这次提交的类型、范围和目的。

个人项目可以先坚持<type>(<scope>): <summary>,再配合“小而完整”的提交习惯,后续看历史会轻松很多。

http://www.jsqmd.com/news/817981/

相关文章:

  • 我们用AI做了一轮完整的回归测试,发现了人工测试永远找不到的Bug
  • 如何巧妙提取PyInstaller打包文件的内部宝藏?
  • 2026 传统制造业 GEO 优化公司排行:头部服务商实力与选型指南 - GEO优化
  • 2026年5月武汉资质代办公司推荐指南:水利部资质代办,资质跨省代办,文物局资质代办,资质过件代办,企业改制资质代办公司优选! - 品牌鉴赏师
  • 常德招聘平台推荐:秒聘网口碑优选 - 13724980961
  • 学习复盘:SQL 注入原理、类型、手工注入及绕过防御
  • 5分钟掌握终极网盘直链下载神器:告别限速,重获文件自由
  • 别再复制粘贴了!手把手教你理解饥荒联机版Mod的‘环境’与‘后构造’函数
  • 【c++面向对象编程】第13篇:继承(三):同名隐藏与作用域覆盖
  • PyQt5开发一个简单的HTTP请求测试工具
  • Figma中文插件终极指南:3分钟让英文界面变中文的简单方案
  • 视频去水印软件怎么选?2026 免费去水印工具对比|电脑手机都能用 - 科技热点发布
  • 容器内 ping 不通外网但宿主机能 ping 通,怎么排查 Docker 网络配置?
  • VMware Fusion 26H1 发布 - 领先的免费桌面虚拟化软件
  • Windows系统优化终极指南:Chris Titus Tech WinUtil一键管理神器
  • AMD Ryzen调试神器SMU Debug Tool:5步快速掌握CPU性能调优
  • 3个颠覆性脚本,让Adobe Illustrator工作效率提升500%
  • 常德招聘网站推荐:秒聘网择业利器 - 17329971652
  • 如何用3分钟彻底解决Windows开发者的API测试困境:Postman便携版完整指南
  • WSL网络连接问题
  • VMware Workstation Pro 26H1 for Windows Linux - 领先的免费桌面虚拟化软件
  • Python CosyVoice项目遭遇 Windows TxF WinError 6714 的深度排查与修复指南
  • 乙烯基甲苯市场深度洞察:年复合增长率(CAGR)为5.7%(2026-2032)
  • 2026年照片去水印免费软件app有哪些?手机无广告去水印工具推荐 - 科技热点发布
  • ESP-Drone:如何用300元预算打造你的第一架智能无人机?
  • 2026届必备的六大AI写作神器推荐榜单
  • 拆弹实验——反汇编实战:从汇编指令到算法还原
  • 常德招聘软件推荐:秒聘网优选佳选 - 17322238651
  • 2026 成都靠谱 GEO 优化公司排行榜|全维度评测,这 5 家头部服务商值得选 - GEO优化
  • 2026年图片去水印软件哪个好用?5款工具实测对比与推荐指南 - 科技热点发布