Ответ 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 может иметь разные представления о том, какие персонажи нуждаются в защите.