Я еще раз прочитал страницу git-blame и заметил эту часть:
Особенно полезным способом является просмотр, если добавленный файл имеет строки, созданные путем копирования и вставки из существующих файлов. Иногда это указывает на то, что разработчик был неаккуратным и не реорганизовал код должным образом. Сначала вы можете найти фиксацию, которая ввела файл:
git log --diff-filter = A --pretty = short-foo
а затем аннотировать изменение между фиксацией и ее родителями, используя commit ^! Обозначения:
git винить -C -C -f $commit ^! - foo
Это звучит довольно интересно, но я не совсем понимаю, как это работает, и почему. Интересно, можно ли его использовать в git для обнаружения копии и вставленного кода.
Может ли какой-нибудь эксперт git объяснить, как использовать вышеприведенные команды git, и можно ли использовать что-то подобное, чтобы сделать git показать, есть ли дублирование кода (возможно, используя индекс "подобия" ', который git, кажется, вычисляется при переименовании файлов)?