Есть ли способ ограничить git diff
измененными файлами?
Я хотел бы увидеть различия между двумя коммитами, но исключить пути, которые не существуют в одно или другое (добавления / удаления). Следующий однострочник Perl иллюстрирует большую часть того, что я хочу:
git diff master.. | perl -lnwe 'print unless /^(new|deleted) file/../^diff/ and not /^diff/'
Но остается diff --git a / path b / path
строк для новых или удаленных файлов. Кроме того, было бы намного лучше, если бы мне не приходилось разбирать (например, он не работает, если какой-либо кусок содержит что-либо, совпадающее с / ^ diff /).
Еще одна альтернатива, которую я пробовал:
git diff --name-status (args) | perl -lnwe 'print if s/^M\s+//' | xargs git diff (args) --
но все равно кажется хакерским.