忽略 git 挂钩中的多个目录
Ignore multiple directories in git hook
我想忽略 git 提交挂钩中的任何 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 挂钩不会在 dist 目录中拾取暂存文件。
find
不处理它的标准输入,所以在|
之后不能使用
可以改用 grep
| grep -v '/dist/' | grep -v '/node_modules/'
或使用一个 grep 进程
| grep -Ev '/dist/|/node_modules/'
我想忽略 git 提交挂钩中的任何 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 挂钩不会在 dist 目录中拾取暂存文件。
find
不处理它的标准输入,所以在|
可以改用 grep
| grep -v '/dist/' | grep -v '/node_modules/'
或使用一个 grep 进程
| grep -Ev '/dist/|/node_modules/'