Skip to content

Git提交规范

约 661 字大约 2 分钟

Git

2020-05-25

在开发中使用一致的Git提交格式有助于提高团队协作效率,清晰地记录每个提交的目的和内容。 以下是一些常见的(commit types),这些类型帮助明确每个提交的意义,并确保项目的版本历史清晰、易于管理。

Commit message 的格式

每次提交,Commit message 都包括三个部分:Header,Body 和 Footer。

<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>

其中,Header 是必需的,Body 和 Footer 可以省略。

  • type: 提交的类别(必填)
  • scope: 影响的范围(可选)
  • subject: 简短描述本次提交的目的和内容

Body

Body 部分是对本次 commit 的详细描述,可以分成多行。

  • 使用第一人称现在时,比如使用change而不是changedchanges
  • 应该说明代码变动的动机,以及与以前行为的对比。

Footer 部分只用于两种情况。

不兼容变动

如果当前代码与上一个版本不兼容,则 Footer 部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法。

关闭 Issue

如果当前 commit 针对某个issue,那么可以在 Footer 部分关闭这个 issue 。

Closes #123
# 也可以一次关闭多个 issue 。
Closes #123, #124, #125

Revert

还有一种特殊情况,如果当前 commit 用于撤销以前的 commit,则必须以revert:开头,后面跟着被撤销 Commit 的 Header。

revert: feat(user): 新增用户验证码登陆功能

This reverts commit 2dc4ee9b1f5b607f439dbf80142e2a63013ef14c.

Body部分的格式是固定的,必须写成This reverts commit hash.,其中的hash是被撤销 commit 的 SHA 标识符。

常用提交类型(Type)

Type说明
feat新功能 feature
fix修复 bug
docs文档注释
style代码格式调整
refactor代码重构(既非新增功能,也非修复 bug)
perf性能优化
test测试
chore构建/工具/依赖变更
revert回退
build构建相关的更改
ci修改 CI 配置文件或修复 CI 相关bug
merge分支合并

作用域(Scope)

可选字段,用括号包裹,说明代码影响的范围(如模块、组件)

  • 例如:feat(user): 新增用户验证码登陆功能

主题(Subject)

subject是commit目的的简短描述,不超过50个字符。

示例

# 标准提交
git commit -m "feat(user): 新增用户验证码登陆功能"

复杂提交建议

如果提交需要详细说明,建议省略 -m 直接进入编辑器编写多行信息

git commit