喜迎
春节

Git Commit Message 的最佳实践


在 Git 中,一个好的 commit message 应该清晰、简洁,并能准确描述本次提交的内容。良好的 commit 规范有助于团队协作、代码审查(Code Review)以及后续的版本维护。以下是 Git Commit Message 的最佳实践:


1. Commit Message 结构
推荐采用 Conventional Commits 规范,格式如下:

1
2
3
4
5
<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

示例
1
2
3
4
5
6
7
8
9
10
11
12
feat(auth): add user login API

- Implement JWT-based authentication
- Add login endpoint `/api/auth/login`
- Update README with API docs

fix: resolve memory leak in image processing

The previous implementation caused OOM errors when processing large images.
This fix uses a streaming approach to reduce memory usage.

BREAKING CHANGE: The `processImage` function now requires a callback.


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
2
update code
fix bug

✅ 改进后
1
2
fix(auth): correct login validation error
feat(api): add user registration endpoint

❌ 缺少类型

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
2
feat: add user login API  
fix: resolve minor UI alignment issues


5. 如何规范 Commit Message?
(1) 使用 Git Hooks(推荐)
• Husky + commitlint(强制检查 Commit 格式)

1
2
3
4
5
npm install husky --save-dev
npx husky-init && npm install
npm install @commitlint/{config-conventional,cli} --save-dev
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js
npx husky add .husky/commit-msg "npx --no-install commitlint --edit $1"

这样提交时如果不符合规范会被阻止。

(2) 使用 Commitizen(交互式提交)

1
2
npm install -g commitizen
echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc

然后使用 git cz 代替 git commit,它会引导你填写规范的 Commit Message。


6. 总结
✅ 好的 Commit Message 应该:
• 简洁明了,准确描述变更内容

• 遵循 <type>: <description> 格式

• 关键变更可加 BREAKING CHANGE 或关联 Issue

• 使用工具(Husky + commitlint)强制规范

这样可以让团队协作更高效,代码历史更清晰! 🚀


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
评 论
 上一篇
Git合并代码失败,如何重置分支
Git合并代码失败,如何重置分支
如果在项目上,你希望将 feature/v30 分支的代码合并到 develop 分支,但当前 develop 分支存在未提交的修改(已暂存和未暂存的文件)。以下是安全处理步骤和直接基于 feature/v30 创建新 develop 分支
2025-06-20
下一篇 
Git解决本地未跟踪文件的问题
Git解决本地未跟踪文件的问题
git pull origin xx 提示有 untracked files,报错如同所示 这个错误的意思是:Git 发现你的工作目录中有一个未跟踪(untracked)的文件 app/xx.php,而远程 develop 分支上也有
2025-05-23

在 Git 中,一个好的 commit message 应该清晰、简洁,并能准确描述本次提交的内容。良好的 commit 规范有助于团队协作、代码审查(Code Review)以及后续的版本维护。以下是 Git Commit Message 的最佳实践:


1. Commit Message 结构
推荐采用 Conventional Commits 规范,格式如下:

1
2
3
4
5
<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

示例
1
2
3
4
5
6
7
8
9
10
11
12
feat(auth): add user login API

- Implement JWT-based authentication
- Add login endpoint `/api/auth/login`
- Update README with API docs

fix: resolve memory leak in image processing

The previous implementation caused OOM errors when processing large images.
This fix uses a streaming approach to reduce memory usage.

BREAKING CHANGE: The `processImage` function now requires a callback.


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
2
update code
fix bug

✅ 改进后
1
2
fix(auth): correct login validation error
feat(api): add user registration endpoint

❌ 缺少类型

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
2
feat: add user login API  
fix: resolve minor UI alignment issues


5. 如何规范 Commit Message?
(1) 使用 Git Hooks(推荐)
• Husky + commitlint(强制检查 Commit 格式)

1
2
3
4
5
npm install husky --save-dev
npx husky-init && npm install
npm install @commitlint/{config-conventional,cli} --save-dev
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js
npx husky add .husky/commit-msg "npx --no-install commitlint --edit $1"

这样提交时如果不符合规范会被阻止。

(2) 使用 Commitizen(交互式提交)

1
2
npm install -g commitizen
echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc

然后使用 git cz 代替 git commit,它会引导你填写规范的 Commit Message。


6. 总结
✅ 好的 Commit Message 应该:
• 简洁明了,准确描述变更内容

• 遵循 <type>: <description> 格式

• 关键变更可加 BREAKING CHANGE 或关联 Issue

• 使用工具(Husky + commitlint)强制规范

这样可以让团队协作更高效,代码历史更清晰! 🚀


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
评 论
 上一篇
Git合并代码失败,如何重置分支
Git合并代码失败,如何重置分支
如果在项目上,你希望将 feature/v30 分支的代码合并到 develop 分支,但当前 develop 分支存在未提交的修改(已暂存和未暂存的文件)。以下是安全处理步骤和直接基于 feature/v30 创建新 develop 分支
2025-06-20
下一篇 
Git解决本地未跟踪文件的问题
Git解决本地未跟踪文件的问题
git pull origin xx 提示有 untracked files,报错如同所示 这个错误的意思是:Git 发现你的工作目录中有一个未跟踪(untracked)的文件 app/xx.php,而远程 develop 分支上也有
2025-05-23
  目录
  目录
hexo