首页 > 解决方案 > 如何从 git-diff-index 中排除路径/文件

问题描述

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

这是我的 sh 文件;

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

我知道这个排除路径可以用git-diff-index写,但我不知道怎么写。

谢谢

标签: gitpre-commit-hook

解决方案


您可以使用魔术 pathspec排除某些路径。例如

git diff-index HEAD -- :!*Test

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

次要兼容性说明:不要使用虚线形式git-diff-index,因为会放弃对它的支持;使用命令形式git diff-index


推荐阅读