我想忽略我的git commit hook中的任何dist
和node_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
我正确地获取了不包含dist
或node_modules
目录中任何文件的文件列表。
如何将这些结合起来,我的git hook不会在dist目录中获取暂存文件。
答案 0 :(得分:2)
find
不会处理其标准输入,因此无法在|
之后使用
grep
| grep -v '/dist/' | grep -v '/node_modules/'
或使用一个grep进程
| grep -Ev '/dist/|/node_modules/'