如何禁用文件特定行的某些预提交挂钩?
How to disable certain pre-commit hooks around specific lines of a file?
在gitignore/Global/macOS.gitignore里面,有两个\r\r
,如下图所示:
我使用 pre-commit==v4.0.1
及其 mixed-line-ending
和 trailing-whitespace
挂钩。两者都在这条线上触发。
如何在我的 .gitignore
文件中本地禁用这些挂钩?
我目前采用的解决方案是 exclude: .gitignore
在我的 .pre-commit-config.yaml
中用于两个挂钩。但是,我不喜欢这样,因为它忽略了这些挂钩的整个 .gitignore
文件,而我真的只想在本地禁用 .gitignore
.[= 的第 6 - 8 行周围的这两个挂钩。 21=]
没有你想要的选项
pre-commit
框架 对文件进行操作 所以最好的办法是利用 exclude
:
- id: trailing-whitespace
exclude: ^\.gitignore$
或者更实际一点,只需删除 Icon\r
行,因为它不太可能被击中(仅当您在 macOS 上为文件夹自定义图标时才会出现)。另一种选择是使用 Icon?
来代替——它的精确度稍差,但您可能不太可能将其他东西与它匹配
免责声明:我创建了 pre-commit
和 pre-commit-hooks
另一种方法是避免在 pre-commit.com
设置中配置任何内容,并确保 .gitignore
仅首先使用 \n
签出。
为此,请尝试 add in a .gitattributes
,与 .gitignore
:
在同一文件夹中
*.gitignore eol=lf
在gitignore/Global/macOS.gitignore里面,有两个\r\r
,如下图所示:
我使用 pre-commit==v4.0.1
及其 mixed-line-ending
和 trailing-whitespace
挂钩。两者都在这条线上触发。
如何在我的 .gitignore
文件中本地禁用这些挂钩?
我目前采用的解决方案是 exclude: .gitignore
在我的 .pre-commit-config.yaml
中用于两个挂钩。但是,我不喜欢这样,因为它忽略了这些挂钩的整个 .gitignore
文件,而我真的只想在本地禁用 .gitignore
.[= 的第 6 - 8 行周围的这两个挂钩。 21=]
没有你想要的选项
pre-commit
框架 对文件进行操作 所以最好的办法是利用 exclude
:
- id: trailing-whitespace
exclude: ^\.gitignore$
或者更实际一点,只需删除 Icon\r
行,因为它不太可能被击中(仅当您在 macOS 上为文件夹自定义图标时才会出现)。另一种选择是使用 Icon?
来代替——它的精确度稍差,但您可能不太可能将其他东西与它匹配
免责声明:我创建了 pre-commit
和 pre-commit-hooks
另一种方法是避免在 pre-commit.com
设置中配置任何内容,并确保 .gitignore
仅首先使用 \n
签出。
为此,请尝试 add in a .gitattributes
,与 .gitignore
:
*.gitignore eol=lf