Git提交规范
在开发中使用一致的Git提交格式有助于提高团队协作效率,清晰地记录每个提交的目的和内容。 以下是一些常见的(commit types),这些类型帮助明确每个提交的意义,并确保项目的版本历史清晰、易于管理。
Commit message 的格式
每次提交,Commit message 都包括三个部分:Header,Body 和 Footer。
<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>
Header
其中,Header 是必需的,Body 和 Footer 可以省略。
- type: 提交的类别(必填)
- scope: 影响的范围(可选)
- subject: 简短描述本次提交的目的和内容
Body
Body 部分是对本次 commit 的详细描述,可以分成多行。
- 使用第一人称现在时,比如使用
change
而不是changed
或changes
- 应该说明代码变动的动机,以及与以前行为的对比。
Footer
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