Википедия объясняет автоматическое определение переименования:
Вкратце, учитывая файл в ревизии N, одноимённый файл в ревизии N-1 является его предком по умолчанию. ревизии N-1 является его предком по умолчанию. Однако, если в ревизии N не существует файла с таким же именем в ревизии N-1, Git ищет файл, который существовал только в ревизии N-1 и очень похож на новый файл.
Обнаружение переименований, очевидно, сводится к обнаружению похожих файлов. Документирован ли где-нибудь этот алгоритм? Было бы неплохо знать, какие виды преобразований обнаруживаются автоматически.