在软件开发过程中,Git commit 是一种记录代码更改的方式。良好的 Git commit 规范不仅能帮助团队更好地协作,还能使代码库更加整洁和可维护。本文将介绍一些常见的 Git commit 规范,帮助你在项目中更好地管理代码提交。

1. Commit Message 格式

一个标准的 commit message 通常分为三个部分:标题(Subject)、正文(Body)和页脚(Footer)。

标题(Subject)

标题应简洁明了,通常不超过 50 个字符。以下是一些建议:

  • 简明扼要:标题应简短明了,传达出本次提交的主要内容。
  • 动词开头:使用祈使句,例如 "Add feature" 而不是 "Added feature"。
  • 首字母大写:标题的首字母应大写。
  • 不要以句号结尾:标题结尾不要加句号。

示例:

Fix bug in user authentication

正文(Body)

正文用于详细描述本次提交的内容和原因。以下是一些建议:

  • 详细描述:对 commit 做详细描述,解释为什么需要这次更改以及更改的具体内容。
  • 换行:每行不超过 72 个字符,便于阅读。
  • 空行分隔:标题和正文之间应有一个空行。

示例:

Fix bug in user authentication

This commit fixes the issue where users were unable to log in
due to a missing parameter in the authentication function.

页脚(Footer)

页脚用于补充一些额外的信息,例如关联的 issue 或破坏性更改。以下是一些建议:

  • 关联问题:如果与某个问题(issue)或任务(task)相关,可以在页脚中注明。
  • BREAKING CHANGE:如果有破坏性更改,应在页脚中注明。

示例:

Fix bug in user authentication

This commit fixes the issue where users were unable to log in
due to a missing parameter in the authentication function.

Fixes #42

2. 使用标准化的提交类型

为了更好地组织和理解 commit,一些团队使用标准化的提交类型。常见的类型包括:

  • feat:新功能(feature)
  • fix:修复 bug
  • docs:文档更新
  • style:代码格式(不影响代码运行的变动)
  • refactor:代码重构(既不是新增功能,也不是修复 bug 的代码变动)
  • test:增加测试
  • chore:构建过程或辅助工具的变动

示例:

feat: add user login functionality

3. 遵循语义化版本控制(Semantic Versioning)

语义化版本控制(Semantic Versioning)是一种通过 commit message 自动生成版本号的方式。常见的规则包括:

  • fix:表示修复 bug,会触发补丁版本号(patch version)的更新。
  • feat:表示新增功能,会触发次版本号(minor version)的更新。
  • BREAKING CHANGE:表示破坏性更改,会触发主版本号(major version)的更新。

4. 工具支持

使用一些工具可以帮助你更好地遵循提交规范,例如:

  • Commitizen:一个帮助你生成标准化 commit message 的工具。
  • Husky:一个 Git 钩子工具,可以在提交前运行 lint 检查,确保 commit message 符合规范。

总结

良好的 Git commit 规范有助于提高团队协作效率,便于代码审查和历史追踪。通过遵循上述规范,可以使 commit message 更加清晰、易读和有用。希望这篇指南能帮助你在项目中更好地管理代码提交,保持代码库的整洁和可维护性。


希望这篇博客文章对你有帮助!如果有任何问题或需要进一步的修改,请随时告诉我。