Git diff --stat исключить определенные файлы

Попытка адаптировать ответы от Хотите исключить файл из git diff " для флага --stat и сбой - принятый ответ (создать драйвер) кажется только unix (перенаправление на /bin/true, что бы это ни значило), плюс он создает драйвер и назначает его файлу постоянно, пока я смотрю для переключения на временное отключение diff для файла (или, скорее, некоторых файлов).

Сценарий :

git diff `git status -s |grep -v ^\ D |grep -v file/to/exclude.txt |cut -b4-`

на самом деле вызывает git статус и редактирует его вывод - в то время как я хочу, должен проинструктировать git diff, чтобы игнорировать некоторые файлы при вычислении (простой) -стат (только строки были изменены). Я прошел через git-diff docs, но не мог найти такой вариант. Кто-нибудь даст мне руку?

$ git --version
git version 2.6.1.windows.1

Ответ 1

Трюк исключения пути, описанный в Making & # 39; git log & # 39; игнорировать изменения для определенных путей, работает здесь:

git diff --stat -- . ':(exclude)file/to/exclude.txt'

или, если вы находитесь в подкаталоге:

git diff --stat -- :/ ':(exclude,top)file/to/exclude.txt'

Последнее может быть написано по-разному. Например, это также работает:

git diff --stat ':(top)' :!/file/to/exclude.txt

как и

git diff --stat :/: :!/:file/to/exclude.txt

Они описаны в документации gitglossary в разделе "pathspec". Обратите внимание, что функция исключения является новой в Git версии 1.9 (и немного не работает до 1.9.2). Ведущий / является псевдонимом для top, а ! является псевдонимом для exclude, для длинных форм требуются скобки. Конечное двоеточие перед фактическим путем не является обязательным при использовании односимвольных псевдонимов, но запрещено при использовании скобок (это правило приводит меня в замешательство каждый раз - я все еще хочу использовать :(exclude):..., а не :(exclude)...). Одинарные кавычки вокруг приведенных выше компонентов pathspec (top) и (exclude) предназначены для защиты скобок от интерпретации оболочками (Unix/Linux); оболочка Windows может иметь разные представления о том, какие персонажи нуждаются в защите.