用 Git Hook 守住代码质量的第一道门
【摘要】 很多团队依赖 CI 发现格式错误和低级问题,但等到推送后才发现,反馈链路太长,修起来也麻烦。其实可以用 Git Hook 把第一道门挪到本地:在 git commit 前自动跑一遍快速检查,不合格就直接拦截。常见做法是 husky + lint-staged。先安装依赖,执行 npx husky init,然后在 .husky/pre-commit 中写入 npx lint-staged。接...
很多团队依赖 CI 发现格式错误和低级问题,但等到推送后才发现,反馈链路太长,修起来也麻烦。其实可以用 Git Hook 把第一道门挪到本地:在 git commit 前自动跑一遍快速检查,不合格就直接拦截。
常见做法是 husky + lint-staged。先安装依赖,执行 npx husky init,然后在 .husky/pre-commit 中写入 npx lint-staged。接着在 package.json 配置 lint-staged,只检查本次暂存的文件,例如:
"lint-staged": {
"*.{js,ts,jsx,tsx}": ["eslint --fix", "prettier --write"],
"*.{css,md,json}": ["prettier --write"]
}
这样每次提交只会处理改动文件,速度快,也不会因为历史遗留问题阻塞开发。好处很直接:反馈从分钟级降到秒级,减少 CI 无效构建,避免“格式化提交”污染提交历史,还能让团队逐步形成提交前自检的习惯。
注意 Hook 只适合做快速检查,单元测试、构建和集成测试仍应交给 CI,避免本地提交过慢。另外要给紧急场景留出口,比如文档说明可用 git commit --no-verify 跳过,但 Code Review 时需说明原因。小投入换来质量前移,值得落地。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)