Как найти все переименования во всех коммитах на 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