Как исключить файлы лезвий из команды git diff?

У меня есть команда для получения файлов, и я хочу исключить все файлы .blade.php .

      $(git diff --cached --name-only --diff-filter=ACM | grep ".php\{0,1\}$")

Как я могу это сделать?

Я пробовал эти способы:

  1.         $(git diff --cached --name-only --diff-filter=ACM | grep --exclude="*\.blade.php*"| grep ".php\{0,1\}$")
    
  2.         $(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 в текущей папке.

Другие вопросы по тегам