Подавление различий для удаленных файлов в git
Я хочу получить краткий обзор локальных изменений в моем репозитории, но мне не нужен diff, который показывает удаленные файлы, так как каждая отдельная строка минус.
В принципе, я хочу что-то вроде 'git diff HEAD <list of modified files only>'
. В идеальном мире ему будет предшествовать список удаленных и добавленных файлов, но не показывать различия между ними.
Я был в основном из-за написания утилиты, которая делает это:
git diff HEAD `git status | grep modified | cut -d : -f 2`
когда я задавался вопросом, существует ли какой-то способ git -y, чтобы сделать это. Есть ли флаг, который мне не хватает? Я также хотел бы сохранить цветной выход.
Ответы
Ответ 1
В Git версий 1.8.4 и более ранних вы можете сделать это с --diff-filter
и указав все, кроме критерия "D" (удалено):
$ git diff --diff-filter=ACMRTUXB
В Git версий 1.8.5 и новее была добавлена возможность исключать файлы, соответствующие указанным критериям, что значительно облегчает эту задачу. Вы можете исключить, используя строчные, а не заглавные буквы. Вот так:
$ git diff --diff-filter=d
Ответ 2
Почти тот же ответ, что и размещенный Dan Moulding
, но вы, вероятно, хотите указать, что вам не нравится не, а для скрытых удаленных файлов это будет:
git diff --diff-filter=d
Ответ 3
git diff (-D|--irreversible-delete)
будет опускать тело diff для удаленных файлов. Я не думаю, что есть эквивалент для добавленных файлов.
Ответ 4
Вы также можете использовать -M, которые пытаются найти файлы, которые были перемещены
git diff -M -D
больше может получить дополнительную информацию: git diff --help (опция -B также может быть интересной)