返回术语表
DevOps与CI/CD

Pre-commit Hooks

在创建git commit之前自动运行的脚本,用于强制执行代码质量标准、运行linter并防止提交有问题的代码。

定义

Pre-commit hooks是Git hooks系统(.git/hooks/pre-commit)的一部分。它们可以阻止未通过检查的提交。常见用途:运行linter(ESLint、Prettier)、检查密钥、运行单元测试和强制执行提交消息格式。Husky(Node.js)、pre-commit(Python)和Lefthook等工具使hook管理更加容易。hooks在开发者机器上本地运行,在问题到达CI之前捕获它们。

为什么重要

Pre-commit hooks将质量检查左移,在代码被提交或推送之前捕获问题。这为开发者提供即时反馈,并防止用"fix lint"提交污染git历史。它们补充(但不替代)CI检查,因为开发者可以绕过本地hooks。

示例

开发者尝试提交带有console.log语句的代码。pre-commit hook运行ESLint,检测到no-console违规并阻止提交,显示错误消息解释需要修复什么。

相关术语

pre-commit hooksgit hookshuskypre-commitlint-staged

使用diffray自动化代码审查

多智能体AI代码审查系统。自动发现bug、安全漏洞和架构问题。