В свое время я имел неосторожность при коммитах в Git-репозитории создавать описание кириллицей в кодировке CP1251. После перезода на UTF-8 читать журналы Git стало совершенно невозможно. Таких коммитов очень много, а репозитории достаточно ценные.
Насколько я понял, информация в каталоге .git/logs содержит только журналы действий пользователя, и к описанию коммитов никакого отношения не имеет. В частности, прямое перекодирование файлов .git/logs/HEAD и .git/logs/refs/master никакого эффекта не дало.
Я вижу только один путь: последовательный рекоммит с указанием описания в новой кодировке и дальнейший перенос базы для последующих коммитов на новую позицию. Так как таких коммитов много, возможно, придется воспользоваться скриптингом.
Посему вопрос: может ли эта проблема быть решена другим способом? Есть ли инструменты для решения подобных задач?