Почему бы вам просто не преобразовать файл в UTF-8 и зафиксировать его, например, с:
iconv -f UTF-16 -t UTF-8 input-file.txt > input-file.txt.fixed
# Check here that the conversion worked OK
mv -i input-file.txt.fixed input-file.txt
git commit -m 'Convert input-file.txt from UTF-16 to UTF-8' input-file.txt
Обновление после уточняющего комментария:
Если вы хотите переписывать этот файл при каждом коммите в истории HEAD
, вы можете использовать git filter-branch
, что-то вроде:
git filter-branch --tree-filter \
'iconv -f UTF-16 -t UTF-8 input-file.txt > input-file.txt.fixed &&
mv input-file.txt.fixed input-file.txt' HEAD
Конечно, если вы переписываете историю таким образом, это может вызвать проблемы, если вы поделились этим хранилищем с кем-либо. (Я не проверял эту команду - используйте ее осторожно, вероятно, только новый клон вашего хранилища.)