Pre-Commit 框架指南

Pre-Commit 框架指南

pre-commitA framework for managing and maintaining multi-language pre-commit hooks.项目地址:https://gitcode.com/gh_mirrors/pr/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]
自动格式化

结合 blackpyformat 等代码格式化工具,你可以在提交前自动格式化 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 可以为你的开发工作流带来更高的效率和质量保证。务必定期更新钩子库,以利用最新的改进和修复。

pre-commitA framework for managing and maintaining multi-language pre-commit hooks.项目地址:https://gitcode.com/gh_mirrors/pr/pre-commit

  • 14
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
pytest和pre-commit是两个不同的工具。pytest是一种用于Python的测试框架,用于编写和运行单元测试。它可以帮助开发者更轻松地编写可靠的测试代码,并提供丰富的断言和测试运行控制功能。 pre-commit是一个用于管理和维护多种语言的git pre-commit hooks框架。它允许你在每次提交代码之前运行预定义的脚本或命令,以执行代码格式化、静态代码分析、代码审查等操作。通过pre-commit,你可以轻松地将他人创建并分享的pre-commit hooks安装到自己的项目仓库中,解决环境依赖问题。 所以,pytest和pre-commit是两个用途不同的工具。pytest主要用于编写和运行单元测试,而pre-commit用于在提交代码之前运行预定义的脚本或命令。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [fondat-aws:Amazon Web Services的Fondat软件包](https://download.csdn.net/download/weixin_42131424/15625298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [使用哪些工具,可以提升 Python 项目质量?](https://blog.csdn.net/m0_72444380/article/details/126869817)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石玥含Lane

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值