在进行代码提交时,良好的提交风格可以帮助我们保持项目的可读性和维护性。为了确保提交记录易于理解和管理,建议遵循以下 Git 提交风格指南。

提交消息结构

每个提交消息应包含三个部分:

  1. 标题(subject): 用简洁的方式描述改动内容。
  2. 正文(optional body): 更详细地说明为什么进行该修改。
  3. 脚注(optional footer): 可以用于关闭某些 issues 或者备注重要事项。

    <type>[optional scope]: <description>
    
    [optional body]
    
    [optional footer(s)]
    

1. 标题部分

  • 必须包含改动的 类型(type),可以是以下几种类型:

    • feat: 新功能
    • fix: 修复 bug
    • docs: 仅文档更新
    • style: 代码格式更改(不影响逻辑的改动,如空格、格式、缺少分号等)
    • refactor: 代码重构(既不修复 bug 也不添加功能)
    • test: 添加或修改测试
    • chore: 修改构建过程或辅助工具的变动
    • perf: 提升性能的改动
  • 范围(scope) 用于描述影响的模块或功能。若范围不明确可以省略。

  • 描述(subject) 使用简洁明了的动词开头,描述改动内容,限制在50个字符以内。

2. 正文部分(可选)

  • 提供更多的背景信息和修改动机。
  • 每行不超过 72 个字符。

3. 页脚部分(可选)

  • 如果提交关闭了某个 issue 或做了特殊处理,可以在页脚注明。
  • 例如:Closes #123Relates to #456

结构字段说明

字段 说明 示例
type 提交类型,表示改动的目的。 feat, fix, docs, style, refactor, test, chore, perf
scope 可选,描述此次改动的影响范围。 auth, api, db, ui
subject 简洁描述改动,50字符以内。 add user login feature, fix navbar bug
body 可选,详细说明修改的原因、背景信息,每行不超过 72 字符。 This commit adds the login feature for user authentication.
footer 可选,补充信息,如关闭 issue。 Closes #123, Relates to #456

示例提交消息

feat(auth): add user login feature

This commit adds a login feature to authenticate users using OAuth.
It implements a secure way for users to log in using third-party providers.

Closes #123
fix(ui): fix navbar collapsing on small screens

The navbar would collapse on small screens due to a missing media query.
This fix adds the required query to handle screen sizes below 768px.

Relates to #456

参考链接

  1. https://www.conventionalcommits.org/zh-hans/v1.0.0/#%e7%ba%a6%e5%ae%9a%e5%bc%8f%e6%8f%90%e4%ba%a4%e8%a7%84%e8%8c%83