Как найти все переименования во всех коммитах на git?



Я заблудился в лабиринте РЕПО с кучей файлов, которые были прочитаны, в то время как их более старая версия была переименована из-за не очень хорошей ребазы, которая была сделана.



В любом случае, я хочу перечислить все файлы, которые в какой-то момент были переименованы, то есть перечислить все переименованные файлы из всех коммитов.

522   1  
git

1 ответ:

Будет ли этого достаточно?

git whatchanged -M5 --summary | grep rename | grep '=>'

Вот модифицированная версия, которая будет делать переименованные и удаленные файлы:

git whatchanged -M5 --summary | grep -E 'rename.*=>|delete mode'

Это даст вам все имена от главы вашей текущей ветви и ее предков, включая Объединенных родителей, до самого первого коммита. У-M5 будут файлы, которые похожи на 50% или более, сообщенные как переименование; это может быть низким процентом, но вы можете изменить его (5 читается как .5, или 50%, так что вы можете изменить его на M8 для 80%). Быть предупреждаю, это займет много времени, если будет много коммитов.

Я предлагаю вам ограничить диапазон коммитов, таких как:

git whatchanged -M5 --summary <commit-id>..HEAD | grep rename | grep '=>'

Насколько я могу судить, вам нужно будет начать с фиксации, я не уверен, как вы можете получить полный список переименованных файлов по всем ветвям и тегам сразу. Если у вас есть дивергентные ветви, которые вы хотите проверить, или ветви с независимыми историями фиксации в одном РЕПО, вам нужно будет выполнить предложенную команду на каждой из них ветка.

Comments

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