
很多评审意见都来自可以自动发现的问题。把快速、确定的检查放到提交前执行,能让评审更专注于业务逻辑和设计风险。
1. 只放快速检查
格式化、静态检查和受影响的小型测试适合 pre-commit。完整测试套件过慢会导致开发者绕过 Hook。
2. 让 Hook 配置进入仓库
使用团队统一的 Hook 管理工具或安装脚本,避免每个人手工复制。版本变化时可随代码一起更新。
3. 只检查暂存内容
针对 staged files 执行格式化和检查,避免修改未准备提交的工作区文件。运行后重新加入发生变化的文件。
4. CI 仍是最终门禁
本地 Hook 可以被跳过,也可能受环境影响。CI 必须重复关键检查,并使用干净环境给出最终结果。
常见误区
- 在 Hook 中运行半小时测试
- 自动修改未暂存文件
- 只依赖本地检查
- 失败信息没有修复提示
执行检查清单
- 检查通常数秒完成
- 配置由仓库管理
- 失败输出可读
- CI 重复关键规则
总结
好的提交前检查应该几乎无感,却能持续拦住低级错误。速度和确定性比覆盖所有场景更重要。