Ответ 1
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), Unknown (X) или спаривание Broken (B)
(к которому OP Jean Philippe Pellet добавляет:
Буквы статуса
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