Как исключить файлы лезвий из команды git diff?
У меня есть команда для получения файлов, и я хочу исключить все файлы .blade.php .
$(git diff --cached --name-only --diff-filter=ACM | grep ".php\{0,1\}$")
Как я могу это сделать?
Я пробовал эти способы:
-
$(git diff --cached --name-only --diff-filter=ACM | grep --exclude="*\.blade.php*"| grep ".php\{0,1\}$")
-
$(git diff --cached --name-only --diff-filter=ACM | grep --exclude="*\.blade.php*" ".php\{0,1\}$")
но ничего из вышеперечисленного не работает.
1 ответ
Решение
Один из них - использовать
grep -v
чтобы исключить файлы, соответствующие шаблону.
git diff --cached --name-only --diff-filter=ACM | grep ".php\{0,1\}$" | grep -v '.blade.php$'
Другой - исключить файлы в
git diff
.
git diff --cached --name-only --diff-filter=ACM -- . ':!*.blade.php' | grep ".php\{0,1\}$"
-- . ':!*.blade.php'
означает все файлы, за исключением тех, которые соответствуют шаблону
*.blade.php
в текущей папке.