Pre-Commit 框架指南
项目介绍
Pre-Commit 是一个框架,用于管理和维护多语言的预提交钩子(pre-commit hooks)。它允许你在提交代码到版本控制系统之前执行一系列自动检查,以确保代码质量,遵循团队规范,以及进行自动化重构。通过这个框架,你可以集成各种代码检查工具,如 linters 和形式化验证器,以提升代码库的一致性和可靠性。
项目快速启动
安装
首先,你需要安装 pre-commit
。在你的终端中运行以下命令:
pip install pre-commit
配置
在一个新的或现有的 Git 仓库中,创建一个 .pre-commit-config.yaml
文件来定义你的钩子。以下是一个简单的配置示例:
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.4.0 # 使用具体的版本号
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
这将在每次 git commit
时运行三个钩子:检查尾随空格、修复文件末尾和检查 YAML 格式。
初始化
接下来,初始化预提交钩子:
pre-commit install
现在你已经准备好了。每次 git commit
时,配置的钩子都会被执行。
应用案例和最佳实践
使用自动化测试
添加测试作为预提交钩子之一可以确保新提交的代码不会破坏任何现有功能。例如,你可以设置一个钩子来运行 pytest
或者其他单元测试框架。
- repo: local
hooks:
- id: run-tests
name: Run Unit Tests
entry: pytest
language: system
types: [python]
自动格式化
结合 black
或 pyformat
等代码格式化工具,你可以在提交前自动格式化 Python 代码,保持一致的风格。
- repo: https://github.com/psf/black
rev: stable
hooks:
- id: black
典型生态项目
Pre-Commit 社区支持众多预定义的钩子,包括但不限于:
flake8
: Python 代码质量检查工具。mypy
: 类型检查器。isort
: 代码排序工具。prettier
: 多语言代码美化工具。markdownlint
: Markdown 文件校验。
你可以从官方存储库 pre-commit-hooks 和其他第三方存储库找到更多钩子,以适应你的具体需求。
查找更多钩子
探索 pre-commit 自定义钩子注册表,寻找适合你的项目的额外工具。
通过这些步骤和实践,Pre-Commit 可以为你的开发工作流带来更高的效率和质量保证。务必定期更新钩子库,以利用最新的改进和修复。