微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

预提交:如何禁用对未暂存文件的检查?

如何解决预提交:如何禁用对未暂存文件的检查?

我的 pre-commit.com 配置如下所示:

repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.2.0
    hooks:
    -   id: trailing-whitespace
    -   id: end-of-file-fixer
    -   id: check-yaml
    -   id: check-added-large-files
-   repo: https://gitlab.com/pycqa/Flake8
    rev: ''  # pick a git hash / tag to point to
    hooks:
    -   id: Flake8
-   repo: https://github.com/pre-commit/mirrors-isort
    rev: v5.7.0
    hooks:
    - id: isort

如果我尝试提交,我会收到此错误

guettli@yoga15:~/projects/foo$ LANG=C git commit

[WARNING] Unstaged files detected.
[INFO] Stashing unstaged files to /home/guettli/.cache/pre-commit/patch1611141286.
Trim Trailing Whitespace.............................(no files to check)Skipped
Fix End of Files.....................................(no files to check)Skipped
Check Yaml...........................................(no files to check)Skipped
Check for added large files..........................(no files to check)Skipped
Flake8...............................................(no files to check)Skipped
isort................................................(no files to check)Skipped
[INFO] Restored changes from /home/guettli/.cache/pre-commit/patch1611141286.

On branch feature/super-foo
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   .gitignore

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    .pre-commit-config.yaml

no changes added to commit (use "git add" and/or "git commit -a")

我想避免检查未暂存的文件。我知道我在做什么,如果我只想提交一些更改(不是全部),那么我想这样做。

如何禁用对未暂存文件的检查?

解决方法

从您的输出来看,您没有暂存任何提交文件。所以 git 本身阻止你提交(不是 pre-commit)——如果你真的不想提交任何东西,你可以使用 git commit --allow-empty。如果要暂存一些文件以进行提交,请使用 git add 或使用 git commit -a

请注意,此处 pre-commit 没有错误 -- 只是一个警告,告诉您未暂存的内容已暂时删除 so that partial commits can be linted successfully


免责声明:我是 pre-commit 的作者

,

预提交钩子将使用一种迭代变更集中文件的方式。里面可能有类似 git ls-files 的东西。如果您使用 git ls-files -c,那么它只会显示缓存的更改(默认)——如果您使用 git ls-files -o,那么它也会显示未提交的(其他)文件。

如果您要重复使用其他人的钩子,那么您需要调查这些钩子以确定它们是否可以有选择地禁用更改。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。