Как заставить git-diff и git log игнорировать новые и удаленные файлы?



иногда есть несколько измененных файлов вместе с некоторыми новыми, удаленными и/или переименованными файлами. При выполнении git diff или git-log Я хотел бы опустить их, чтобы лучше заметить изменения.



На самом деле, перечисление имен новых и удаленных файлов без их содержания было бы лучше всего. Для" старого "переименованного в" Новый "я хотел бы дополнительно получить разницу между" старым "и"новым".

529   3  

3 ответов:

The работает с diff и журнала.

я использую --diff-filter=M много, что ограничивает выходы diff только изменениями контента.

чтобы обнаружить переименования и копии и использовать их в выводе diff, вы можете использовать -M и -C соответственно, вместе с R и C варианты --diff-filter.

  • официальный документ:
--diff-filter=[(A|C|D|M|R|T|U|X|B)…​[*]]

выберите только те файлы, которые добавлены (A), скопированы (C), удалены (D), изменены (M), переименованы (R), имеют свой тип (т. е. обычный файл, символическая ссылка, подмодуль,...) изменены (T), не объединены (U), неизвестны (X) или их спаривание было нарушено (B). Можно использовать любую комбинацию символов фильтра (включая none).

при добавлении * (All-or-none) в комбинацию выбираются все пути, если существует любой файл, который соответствует другим критериям в сравнении; если нет файла, который соответствует другим критериям, ничего не выбирается.

кроме того, эти прописные буквы могут быть уменьшены, чтобы исключить. Например, --diff-filter=ad исключает добавленные и удаленные пути.

пример: показывать только добавленные , измененные, измененные файлы исключить удаленные файлы:

git diff --diff-filter=ACM

обновление: The принято отвечать Чарльз Бейли является правильным; желаемая функциональность уже встроена в git.

Я оставлю этот ответ здесь, так как он может предоставить идеи для вещей, которые не встроены в git.


git diff отображаются новые и удаленные файлы, сравнивая их с /dev/null. Это не должно быть слишком сложно написать что-то (я бы сам использовал Perl), что ищет /dev/null и отфильтровывает следующие строки до следующего сравнения. Тогда git diff ... | the-filter.

переименованные файлы-это другое дело; у меня нет (пока) хорошего ответа на это.

Comments

    Ничего не найдено.