git commit message 规范

commit message 格式都包括三部分:Header,Body 和 Footer

<type>: <subject>

<body>

<footer>

一、Header

  1. Type(必需)
    type 用于说明 git commit 的类别,允许使用下面几个标识。
  • feat:新功能(Feature), 用于表示引入新功能或特性的变动。

  • fix:修复 bug。这些 bug 可能由 QA 团队发现,或由开发人员在开发过程中识别。

  • docs:文档(Documentation), 表示对文档的变动,这包括对代码库中的注释、README 文件或其他文档的修改。

  • style: 格式(Format), 用于表示对代码格式的变动,这些变动不影响代码的运行。通常包括空格、缩进、换行等风格调整。

  • refactor:重构(即不是新增功能,也不是修改 bug 的代码变动)

  • perf: 优化相关,比如提升性能、体验。

  • test:增加测试,包括单元测试、集成测试或其他类型的测试。

  • chore:构建过程或辅助工具的变动,表示对构建过程或辅助工具的变动。这可能包括更新构建脚本、配置文件或其他与构建和工具相关的内容。

  • revert:回滚到上一个版本,撤销之前的提交。

  • merge:代码合并,通常是在分支开发完成后将代码合并回主线。

  • sync:同步主线或分支的 Bug,通常用于解决因为合并而引入的问题。

  1. Subject(必需)
    subject 是 commit 目的的简短描述,不超过 50 个字符。规范如下:
  • 以动词开头,使用第一人称现在时,比如 change,而不是 changed 或 changes
  • 第一个字母小写
  • 结尾不加句号(.)

例如:
feat: implement user authentication
这个提交消息中,implement user authentication 是 subject,简洁明了地描述了引入用户认证功能的目的。

fix: correct input validation logic
这个提交消息中,correct input validation logic 是 subject,清晰地说明了修复输入验证逻辑的目的。

二、Body

Body 部分是对本次 commit 的详细描述,可以分成多行。Body 编写有两个注意点。

  1. 使用第一人称现在时,比如使用 change 而不是 changed 或 changes。这有助于使描述更加直观和连贯,增强可读性。
  2. 应该说明代码变动的动机,以及与以前行为的对比。 Body 部分不仅仅是描述代码的变动,还应该解释为什么进行这个变动,以及与之前的代码行为相比有哪些改进。这有助于其他开发者更好地理解代码变更的背后动机和意图。

三、Footer

Footer 一般为相关链接

  1. 关闭 issue,如果当前 commit 针对某个 issue,那么可以在 Footer 部分关闭这个 issue
    Closes #234
    也可以一次关闭多个 issue
    Closes #123, #245, #992

  2. 或者提交者信息
    Signed-off-by: name <XXX@XXX.com>

posted @ 2026-08-23 19:48  azhaoi  阅读(3)  评论(0)    收藏  举报