在 Git 中,一个好的 commit message 应该清晰、简洁,并能准确描述本次提交的内容。良好的 commit 规范有助于团队协作、代码审查(Code Review)以及后续的版本维护。以下是 Git Commit Message 的最佳实践:
1. Commit Message 结构
推荐采用 Conventional Commits 规范,格式如下:
1 | <type>[optional scope]: <description> |
示例
1 | feat(auth): add user login API |
2. Commit Message 各部分说明
部分 | 说明 | 示例 |
---|---|---|
type | 提交的类型,通常使用以下几种: - feat (新功能)- fix (Bug 修复)- docs (文档更新)- style (代码格式化,不影响逻辑)- refactor (代码重构,既不是新功能也不是 Bug 修复)- test (测试相关)- chore (构建过程或辅助工具的变动)- perf (性能优化)- revert (回滚之前的提交) |
feat: add user login |
scope (可选) | 影响的范围(可选),如模块名、文件名等 | (auth) (api) |
description | 简短描述本次提交的内容(现在时态,首字母小写) | add user login API |
body (可选) | 详细说明变更内容(可多行) | - 改进点1<br>- 改进点2 |
footer (可选) | 重大变更、Breaking Changes 或关联的 Issue | BREAKING CHANGE: ... 或 Closes #123 |
3. 常见 Commit Type 示例
Type | 说明 | 示例 |
---|---|---|
feat |
新增功能 | feat: add dark mode |
fix |
Bug 修复 | fix: correct login validation |
docs |
文档更新 | docs: update README.md |
style |
代码格式化(不影响逻辑) | style: format code with Prettier |
refactor |
代码重构(非新功能/非 Bug 修复) | refactor: optimize database queries |
test |
测试相关 | test: add unit tests for utils |
chore |
构建/工具变更 | chore: update dependencies |
perf |
性能优化 | perf: improve rendering speed |
revert |
回滚提交 | revert: revert "feat: add user login" |
4. 不好的 Commit Message 示例
❌ 模糊不清
1 | update code |
✅ 改进后
1 | fix(auth): correct login validation error |
❌ 缺少类型
1 | add new feature |
✅ 改进后
1 | feat: implement user profile page |
❌ 过于冗长
1 | this commit adds a new feature that allows users to log in and also fixes some minor bugs in the process |
✅ 改进后
1 | feat: add user login API |
5. 如何规范 Commit Message?
(1) 使用 Git Hooks(推荐)
• Husky + commitlint(强制检查 Commit 格式)
1 | npm install husky --save-dev |
这样提交时如果不符合规范会被阻止。
(2) 使用 Commitizen(交互式提交)
1 | npm install -g commitizen |
然后使用
git cz
代替 git commit
,它会引导你填写规范的 Commit Message。
6. 总结
✅ 好的 Commit Message 应该:
• 简洁明了,准确描述变更内容
• 遵循 <type>: <description>
格式
• 关键变更可加 BREAKING CHANGE
或关联 Issue
• 使用工具(Husky + commitlint)强制规范
这样可以让团队协作更高效,代码历史更清晰! 🚀