Подтвердить что ты не робот

Подавление различий для удаленных файлов в git

Я хочу получить краткий обзор локальных изменений в моем репозитории, но мне не нужен diff, который показывает удаленные файлы, так как каждая отдельная строка минус.

В принципе, я хочу что-то вроде 'git diff HEAD <list of modified files only>'. В идеальном мире ему будет предшествовать список удаленных и добавленных файлов, но не показывать различия между ними.

Я был в основном из-за написания утилиты, которая делает это:

git diff HEAD `git status | grep modified | cut -d : -f 2`

когда я задавался вопросом, существует ли какой-то способ git -y, чтобы сделать это. Есть ли флаг, который мне не хватает? Я также хотел бы сохранить цветной выход.

4b9b3361

Ответ 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 также может быть интересной)