Skip to content

✅ Git Commit Message(提交说明)规范 ​

最通用的是 Angular提交规范,也是行业最流行的,很多项目、GitHub自动生成CHANGELOG都依赖这套格式。

标准格式 ​

<type>(<scope>): <subject>

<body>

<footer>

可以只写第一行(简短提交,日常够用);复杂改动再补充 body 和 footer。

1. <type> 类型(必填,说明这次提交是做什么类型改动) ​

type含义使用场景
featfeature 新功能新增功能,比如:增加深色主题
fixbug修复修复页面报错、样式bug
docsdocumentation 文档只改注释、README,不改动业务代码
style代码风格空格、缩进、格式化;不改变代码逻辑
refactor重构代码重写优化,不加功能、不修bug
test测试新增/修改测试代码
chore杂项工程构建脚本、依赖包、打包配置,和业务代码无关

日常最常用就4个:feat、fix、docs、chore

2. <scope> 范围(可选,写哪个模块) ​

用来标注改动的模块,比如页面、组件、文件。 示例:

  • feat(theme): 增加深色主题
  • fix(index.html): 修复切换主题闪烁问题

3. <subject> 主题(简短描述,最重要) ​

规则:

  1. 一句话,不超过50个字符
  2. 使用动词原形开头(增加、修复、优化,不是“增加了”)
  3. 不加句号结尾 ✅ 好例子:feat(theme): 增加深色主题 ❌ 坏例子:feat: 增加了深色主题。(过去式+句号)

4. body 详细描述(可选,多行) ​

  • 空一行和标题隔开
  • 详细解释为什么改,改动带来什么影响,可以超过一行>

适合复杂提交,小提交不需要写body

常用:关联issue、breaking change(破坏性改动) 比如:Closes #123 表示关闭编号123的任务/issue


📌 实际示例(直接可以拿来用) ​

示例1:简短单行(git commit -m 最常用) ​

git commit -m "feat(theme): 增加深色主题"
git commit -m "fix(index.html): 修复深色模式文字对比度不足"
git commit -m "docs: 更新README,补充主题切换说明"
git commit -m "chore: 更新css打包配置"

示例2:多行提交(不能只用一个 -m,需要打开编辑器写) ​

feat(theme): 增加深色主题

新增深色样式,可通过按钮切换明暗模式,保存用户选择到本地存储。
只修改index.html和style.css,不改动其他页面。

❌ 反面教材(新手最容易写的烂提交) ​

  1. git commit -m "改代码" 👉 完全不知道改了啥,以后查历史白搭
  2. git commit -m "更新" 👉 信息量为0
  3. git commit -m "很多修改,测试一下" 👉 不清晰
  4. git commit -m "feat: 增加了深色主题。" 👉 过去式+末尾句号

✨ 为什么要遵守这个规范? ​

  1. 看 git log / gitk 的提交历史,一眼看懂每一笔提交做了什么
  2. 可以自动生成版本更新日志(CHANGELOG)
  3. 多人协作,别人看你的提交历史,快速定位问题
  4. 回滚、revert的时候,一眼看懂这条提交是干嘛的(就像你刚才git revert的场景)

📝 补充小技巧 ​

  1. 小改动、单人项目:只写 type + subject 就足够
  2. 提交描述重点:写【这次改动的目的】,而不是单纯描述你敲了哪些字符>

不要写“修改index.html第30行”,要写“修复深色模式下导航栏错位”

基于 VitePress & @sugarat/theme 构建