git - 对所有推送的文件运行预提交挂钩
问题描述
我的设置的基本版本是让预先提交运行代码 linter。但是,当它检查/拒绝单个提交时,我发现它太长/不方便,相反,我想在尝试将代码推送到远程/ CI 时运行它。我发现我可以配置阶段,所以我决定只将推送阶段作为所有钩子的默认设置。然而,它最终只是让非 linted 代码被推送。也许是因为它不将此代码识别为“已更改”,因为它在所有文件的子集上运行?
这是我的预提交配置:
default_stages: [push]
repos:
- repo: https://github.com/ambv/black
rev: 19.10b0
hooks:
- id: black
language_version: python3
如果技术上不可能仅在我通过此推送更改的文件上运行它,我可以以某种方式在所有文件上运行它吗?
解决方案
你需要确保你install
预先提交了你正在使用的任何阶段
例如来自推送文档期间的预提交:
要在预提交中使用预推送挂钩,请运行:
$ pre-commit install --hook-type pre-push pre-commit installed at .git/hooks/pre-push
免责声明:我创建了预提交
推荐阅读
- aerospike - Aerospike:地图尺寸过大时出现设备过载错误
- javascript - 用预定值自动填充输入框
- java - javax.faces.el.EvaluationException: java.lang.NullPointerException in java jsf at insert
- reactjs - 使用 react-redux 操作的有效负载作为我的 redux 状态?
- html - 在 HTML 文件中提供本地 Django 应用程序
- asp.net-mvc-4 - VSTS 两个相同的构建不生成相同数量的 zip 文件
- angular - 角度找不到模块
- python - 从 Python 调用 newAPIHadoopFile
- ruby - 尝试运行 rbenv install 2.5.1 时出错
- c# - Azure SQL:如何确定表是否被更改或创建以及由谁创建