忽略git hook中的多个目录

时间:2017-12-13 16:36:15

标签: git bash githooks

我想忽略我的git commit hook中的任何distnode_modules目录。我试过这个:

git diff --cached --name-only --diff-filter=ACM | find . -path ./node_modules -prune -o -path './**/dist -prune -o -name '*.js'

但它不起作用。看起来似乎并不接受从git diff ...

中找到的文件

如果我跑:

git diff --cached --name-only --diff-filter=ACM

我正确获取了暂存文件:

./dist/some-file.js

如果我跑:

find . -path ./node_modules -prune -o -path './**/dist' -prune -o -name '*.js' -print

我正确地获取了不包含distnode_modules目录中任何文件的文件列表。

如何将这些结合起来,我的git hook不会在dist目录中获取暂存文件。

1 个答案:

答案 0 :(得分:2)

find不会处理其标准输入,因此无法在|之后使用

可以使用

grep

| grep -v '/dist/' | grep -v '/node_modules/'

或使用一个grep进程

| grep -Ev '/dist/|/node_modules/'