如何从 git-diff-index 中排除 path/files

How to exclude path/files from git-diff-index

我有一个运行预提交阶段的 sh 文件,但我想排除一些路径,但我也想知道如何排除以“*Test”结尾的文件。

这是我的 sh 文件;

for FILE in `git-diff-index HEAD 2>&1 --name-only | sed 's/^:.*     //' | uniq` ; do

我知道这个exclude路径可以写成git-diff-index但是不知道怎么写

谢谢

您可以使用magic pathspec来排除一些路径。例如

git diff-index HEAD -- :!*Test

将排除所有以 Test 结尾的文件。

次要兼容性说明:不要使用虚线形式 git-diff-index,因为对它的支持将被删除;使用命令形式 git diff-index.

git-diff-index HEAD 2>&1 --name-only -- . ':(exclude)*Tests.java' -- . ':(exclude)*Test.java' -- . ':(exclude)*\as\*' | sed 's/^:.* //' | uniq

这对路径和特定文件都适用