简析如何编写 Git 提交日志

1,088 阅读5分钟

Git 是现代软件开发中不可或缺的工具之一,而 Git 提交日志则是代码协作中必不可少的一部分。好的提交日志能够帮助团队成员更好地了解代码变更,提高代码可读性、可维护性和可追溯性。本文将介绍如何编写好的 Git 提交日志,并且推荐一些常用的提交代码插件。

提交日志的格式

一个好的提交日志应该包含以下几个部分:

  • 标题(Title):简洁地描述这次提交所做的工作。
  • 正文(Body):详细地描述这次提交所做的工作,可以分多个段落。
  • 脚注(Footer):包含与这次提交相关的信息,例如关联的 Bug-ID、更改的文件列表、重要的注意事项等。

提交日志的格式通常是以下这种形式:

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

<body>

<footer>

其中,<type> 为提交类型,可以是以下几种之一:

  • feat:新功能(feature)。
  • fix:修复 bug。
  • docs:文档修改。
  • style:代码样式修改,例如空格、缩进等。
  • refactor:重构代码。
  • test:增加或修改测试。
  • chore:不涉及代码本身的修改,例如更新依赖、打包等。

<scope> 为作用域,可以是项目中的某个模块或者功能点,也可以是代码文件或者目录等。

<subject> 为提交的简短描述,描述做了什么而不是怎么做的。

<body> 为提交的详细描述,可以分多个段落,每个段落不超过 72 个字符。

<footer> 为提交的脚注信息,可以包含与这次提交相关的信息,例如关联的 Bug-ID 、更改的文件列表、重要的注意事项等。

下面是一个示例提交日志:

feat(users): 添加-删除用户API

此提交添加了一个新的API以从系统中删除用户

Closes #123

在上面的示例中,我们使用了 feat(users) 作为提交类型和作用域,表示这是一个新功能的提交,作用域是 users 模块。添加-删除用户API 为提交的简短描述,描述做了什么而不是怎么做的。此提交添加了一个新的API以从系统中删除用户 为提交的详细描述。Closes #123 为提交的脚注信息,表示关闭了 Bug-ID 为 #123 的问题。

如何编写好的提交日志

1. 分离提交

每次提交应该只包含一个功能点的修改。如果一个提交包含了多个功能点的修改,那么将很难追踪每个功能点的修改历史。因此,我们应该将多个功能点的修改分开成多个提交。

2. 使用明确的提交类型和作用域

使用明确的提交类型和作用域能够帮助团队成员更好地了解代码变更。如果使用了不明确的提交类型和作用域,可能会造成团队成员的混乱和误解。因此,我们应该在提交日志中使用明确的提交类型和作用域。

3. 编写清晰、简洁的标题

提交日志的标题应该简洁、清晰,描述这次提交所做的工作。

4. 编写详细的正文

提交日志的正文应该详细地描述这次提交所做的工作,可以分多个段落。正文应该包含修改的原因、实现细节、影响范围等信息。

5. 使用正确的语法和拼写

提交日志应该使用正确的语法和拼写,避免出现拼写错误、语法错误等问题。这不仅可以提高代码可读性和可维护性,还可以减少代码审查的时间和精力。

常用的提交代码插件

在编写提交日志时,我们可以使用一些常用的提交代码插件来帮助我们快速地编写规范的提交日志。以下是一些常用的提交代码插件:

  • Git Commit Template:这是 WebStorm 中的一个插件(本人极度依赖),可以帮助我们快速地编写规范的提交日志。它提供了一个模板,包含了常见的提交类型和作用域,可以帮助我们快速地编写规范的提交日志。
  • commitizen:这是一个命令行工具,可以帮助我们快速地编写规范的提交日志。它提供了一个交互式的命令行界面,可以帮助我们选择提交类型和作用域,然后自动生成规范的提交日志。
  • husky:这是一个 Git 钩子工具,可以帮助我们在提交代码前进行代码检查、测试等操作。我们可以使用 husky 来检查提交日志是否符合规范。
  • commitlint:这是一个工具,可以帮助我们在提交代码前进行提交日志的校验。它可以根据预定义的规则来校验提交日志是否符合规范。

这些工具可以帮助我们快速地编写规范的提交日志,并且提高代码的可读性、可维护性和可追溯性。在使用这些工具时,我们需要根据项目的实际情况来选择合适的工具,并且灵活地进行配置和调整。

总结

好的提交日志能够提高代码可读性、可维护性和可追溯性,有助于团队成员更好地了解代码变更。编写好的提交日志需要遵循一定的格式和规范,包括标题、正文和脚注等。我们还介绍了一些常用的提交代码插件,可以帮助我们快速地编写规范的提交日志。在实际的开发中,我们应该根据项目的实际情况来选择合适的提交日志格式和工具,并且灵活地进行配置和调整。