02_Git提交规范

186 阅读3分钟

背景

Git每次提交代码都需要写commit message,否则就不允许提交。一般来说,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作……但是在日常开发中,大家的commit message千奇百怪,中英文混合使用、fix bug等各种笼统的message司空见惯,这就导致后续代码维护成本特别大,业界最终统一规范,形成现在的commit 规范。


规范建设

国内互联网大厂们常用的那一套提交规范现在正在被广泛应用:

<type>(<scope>): <subject>

简介

描述 \ 类型typescopesubject
是否必须必须非必须必须
用途说明类别说明影响范围简短描述

type 常见类型

类型解释说明
feat新功能(feature)
fix修复BUG
docs文档
style格式样式(不影响代码运行的变动)
refactor重构(既不是新增功能,也不是修改 bug 的代码变动)
perf优化相关,比如提升性能、体验
test增加测试
chore构建过程或辅助工具的变动
revert归滚到上一个版本
merge代码合并
sync同步主线或分支的 Bug

scope(可选)

scope 用于说明 commit 的影响范围,比如数据层、控制层、视图层,根据项目不同而定。

如果你的修改影响了不止一个 scope,你可以用 * 替代。

subject(必须)git commit -m "docs(README): 更新说明文档,添加项目启动指南"

subject 是 commit 中对于项目修改的简短描述,字符控制在 50 内

  • 结尾不加标点符号

commit 示例

  1. git commit -m "fix(login): 修复了登录表单密码校验的bug"
  2. git commit -m "style(navbar): 更新导航栏样式"
  3. git commit -m "feat(chat): 新增聊天功能"
  4. git commit -m "chore(vite): 更新了 vite 版本"
  5. git commit -m "docs(README): 更新说明文档,添加项目启动指南"

规范意义

来自 AI 的答案:

  1. 提高可读性:规范化的commit信息使得版本历史更加清晰易读。其他开发者(包括未来的你)可以快速理解每次更改的目的和范围,而不需要深入查看代码细节。
  2. 便于跟踪:当项目中出现问题时,规范的commit信息可以帮助快速定位引入问题的更改。这对于bug跟踪和回滚至某个稳定版本特别有用。
  3. 自动化支持:遵循一定的规范可以为自动化工具提供支持。例如,可以基于commit信息自动生成版本日志,自动判断版本号的变化(如根据feat和fix标签区分新功能和修复),以及自动化构建和部署。
  4. 改进团队协作:当所有团队成员都遵循同一套commit规范时,可以减少沟通成本,提高团队协作效率。这种一致性确保每个人都能快速理解他人的更改,有助于维护一个健康的代码库。
  5. 促进公共理解:对于开源项目,规范的commit信息可以帮助社区成员理解项目的发展历程和每次更改的背景,这对于吸引和保留贡献者至关重要。
  6. 提升专业性:遵守业界公认的最佳实践,如约定式提交(Conventional Commits),能够提升项目和开发者的专业形象,这在开源社区或寻求职业发展时尤为重要。