可以使用 Git 钩子来实现在 git 提交前自动对提交代码进行静态检测。Git 钩子是一种自定义脚本,可以在 Git 操作时触发执行。
具体实现方法如下:
- 创建 pre-commit 钩子
在项目的 .git/hooks 目录下创建 pre-commit 文件,并赋予可执行权限:
cd /path/to/your/repo
touch .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
- 编写 pre-commit 脚本
打开 pre-commit 文件,并添加以下内容:
#!/bin/bash
# 进入到项目根目录
cd $(dirname $0)/../..
# 执行静态检测命令,如 ESLint、Pylint 等
eslint src/*.js # 以 ESLint 为例
# 如果静态检测失败,则中止提交操作
if [ $? -ne 0 ]; then
echo "Static check failed, please fix the errors before committing."
exit 1
fi
以上代码中使用了 ESLint 对 JavaScript 代码进行静态检测,如果静态检测失败则会中止提交操作。
- 测试 pre-commit 钩子
在修改完代码后执行 git commit 命令时,pre-commit 脚本会被自动触发执行。如果静态检测未通过,则无法提交代码。
注意:每次更新 pre-commit 脚本都需要重新赋予可执行权限。