
pre-commit Git 预提交钩子完整指南让每次提交前自动过检三步配置上手【免费下载链接】pre-commitAutomatically installs a git pre-commit script in your git repository which runs your npm test on pre-commit项目地址: https://gitcode.com/gh_mirrors/pre/pre-commitpre-commit 是一个 Git 预提交钩子框架每次提交前自动跑一遍代码检查把不达标的代码挡在外面。三步完成安装与配置从此不再把脏代码带进仓库。两个让人头疼的场景场景一你刚提完 PR评审的第一条意见是把末尾空格修掉紧接着是import 顺序不对。小事不致命但每次都在浪费评审时间。场景二你本地跑得欢push 上去 CI 却红了。原因不复杂检查这一步你压根没执行。要是这些检查能在提交前自动跑失败了当场拦住问题不就都解决了吗pre-commit 干的就是这件事。它在仓库里装一个 Git 预提交钩子即 git commit 之前自动执行的脚本。检查统一写在一个配置文件里跨平台通用装一次就好新队友跑一条命令就能拿到和你相同的标准。pre-commit 安装三步跑起来第一步装。全局装一次即可pip install pre-commit第二步在仓库根目录初始化pre-commit install钩子写进 .git/hooks之后每次 git commit 都会自动触发。第三步首跑。先把存量代码完整过一遍pre-commit run --all-files有问题修完再提交。一份最小配置看懂 pre-commit配置文件是仓库根目录的 pre-commit-config.yaml最小版长这样repos: - repo: 官方钩子仓库地址 # 检查逻辑来自哪里 rev: v4.5.0 # 锁定的版本号相当于一个 commit hooks: - id: trailing-whitespace # 去掉行尾空格 - id: end-of-file-fixer # 文件末尾保留一个换行 - id: check-yaml # 校验 YAML 语法 - id: check-json # 校验 JSON 语法三个字段很好记repo 是检查逻辑的来源rev 是锁定的版本号id 是具体的检查项。官方文档里还有上百个现成钩子按需抄来改参数即可。 第一次用 pre-commit 容易踩的两个坑坑一钩子没过提交被拦。别慌终端输出的就是问题清单。修完重新提交确属误报可用 git commit --no-verify 跳过一次但别养成习惯。坑二明明配好了队友机器上怎么没跑钩子装在每个人的本地 .git 目录不随代码走。新成员 clone 后要自己再跑一次 pre-commit install。接 CI 也不难流水线里跑同一条 pre-commit run --all-files远程构建就和你的本地一个标准GitHub Actions 这类 CI 都支持。pre-commit 常见问题 FAQ提交会变慢吗每次提交多几秒比 PR 被拒后和评审来回一轮快多了。非 Python 项目能用吗框架是 Python 写的钩子却支持多种语言language: system 还能跑任意系统命令。偶尔才想跑的检查怎么设给钩子加 stages: [manual]它就只会被手动点名触发。✅ 收尾让 pre-commit 成为你的仓库习惯代码规范不该靠人的记性。当前项目如果还没装今天就装上跑完上面三条命令让下一次提交成为一次干净的提交。【免费下载链接】pre-commitAutomatically installs a git pre-commit script in your git repository which runs your npm test on pre-commit项目地址: https://gitcode.com/gh_mirrors/pre/pre-commit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考