如何排除"git diff-index"中的文件

kli*_*eyn 4 git

我正在使用git pre-commit钩子来检查提交.预提交脚本基本上做了一件事:

exec git diff-index --check --cached HEAD --
Run Code Online (Sandbox Code Playgroud)

它也做了一些其他的事情,但它们与这个讨论无关.

问题是,我在存储库中有各种各样的文件,并不是所有文件都必须遵守" git diff-index --check" 强制执行的检查.

所以我的问题是:如何排除/忽略这些文件?也就是说,我确实在git中跟踪它们,但我想在预提交检查中忽略它们.

例如,某个补丁包含*.c,*.h,*ini和*.xyz文件.我希望" git diff-index --check"仅适用于.c和.h文件.

tor*_*rek 6

手册页说:

当存在<path>参数时,仅比较与这些模式匹配的路径.否则,将比较所有跟踪的文件.

换句话说,"path"参数实际上是glob样式的模式,而不仅仅是特定的路径.您只需添加'*.c' '*.h'到您的命令即可.