在日常开发中,你有没有遇到过这样的情况?同事提交的代码记录写着“fix bug”,点开一看,改了七八个文件,根本不知道到底修了啥。或者你自己回看三个月前的提交,一脸懵:这行代码是我写的?当时为啥这么改?
一个好提交规范,能省下大量沟通成本
别小看每次 git commit 的那几行信息。项目越做越大,团队越来越多人参与,混乱的提交日志会成为维护的噩梦。这时候,统一的代码提交规范就显得特别实在。
我们团队之前就吃过亏。上线前紧急排查问题,想通过 git log 找出某个功能是谁改的、什么时候动的,结果满屏都是“update”、“save”、“修改一下”,根本没法快速定位。后来我们定了一套简单的提交模板,效率立马提升不少。
常见的提交结构长这样
一条清晰的提交信息,通常包含类型、作用范围和简要描述。比如:
feat(user): 添加用户登录失败次数限制这里的 feat 表示新增功能,user 是模块名,后面是具体做了什么。这种格式看起来规整,搜索和过滤也方便。
推荐几种常用的提交类型
可以根据项目实际情况选择使用:
feat:新增功能fix:修复缺陷docs:文档更新style:格式调整(不影响逻辑)refactor:重构代码test:增加测试chore:构建过程或辅助工具变动
比如你只是调整了缩进和分号,那就用 style: 格式化首页 JS 代码,谁看了都明白没动逻辑。
带例子的模板可以直接抄
下面是一个我们项目里实际在用的模板,开发者提交时照着填就行:
<类型>(<模块>): <简短描述>
<详细说明(可选)>
<关联任务 ID(可选)>具体长这样:
fix(order): 修复订单状态未同步的问题
在支付成功回调中,订单状态未正确更新为“已支付”,
导致用户页面显示异常。现添加状态更新逻辑。
Fixes PROJ-1234有了这个模板,新人上手快,老成员也不容易偷懒写模糊信息。
还可以配合工具 enforce,比如用 commitlint 检查格式,用 husky 在提交前自动校验。一旦格式不对,直接拒绝提交,倒逼大家遵守规则。
其实不用搞得太复杂,哪怕一开始只强制要求写清楚“改了啥”和“为啥改”,长期下来也会发现,翻历史记录不再是碰运气的事。
代码是给人看的,提交记录也是。花几分钟写清楚,可能帮的是几个月后的自己。