git diff --name-status -C <rev1> <rev2>
должно быть ближе к тому, что вы ищете.
--name-status
будет отображать имена файлов и их соответствующий статус:
(A|C|D|M|R|T|U|X|B)
Добавлен (A), Скопирован (C), Удален (D), Изменен (M), Переименован (R),
Тип (то есть обычный файл, символическая ссылка, подмодуль,…) изменен (T),
Unmerged (U), Неизвестный (X) или спарившийся (B)
(к которому OP Жан-Филипп Пелле добавляет:
За буквами состояния R
и C
«всегда следует знак, обозначающий процент сходства между источником и целью перемещения или копии, и только так и должно быть.)
Относительно файлов, скопированных или перемещенных:
-C[<n>]
--find-copies[=<n>]
Обнаружение копий, а также переименование. Если указано n
, оно имеет то же значение, что и для -M<n>
.
--find-copies-harder
По соображениям производительности по умолчанию опция -C
находит копии только в том случае, если исходный файл копии был изменен в том же наборе изменений.
Этот флаг заставляет команду проверять неизмененные файлы в качестве кандидатов на источник копирования.
Это очень дорогая операция для больших проектов, поэтому используйте ее с осторожностью.Предоставление более чем одной опции -C
имеет тот же эффект.
brauliobo рекомендует в комментариях :
git diff --stat -C
git show --stat -C
git log --stat -C