23 октября 2008

Git и эзотерические локали

Об этом нигде не видел, а сегодня столкнулся в лоб.
Использую на локальной машине эзотерическую локаль KOI8-R, оставленную там сознательно по некоторым причинам. Соответственно и коммит-сообщения получаются в этой кодировке. И если клиент svn это осознаёт и сам делает что надо, то Git'у надо явно указать

git config --global i18n.commitencoding "koi8-r"

В случае же, если уже сделан коммит с сообщением в неправильной кодировке (что само по себе не страшно), push'нуто в репозиторий (что уже хуже) и, самое главное, в таком виде парализует (о ужас) модуль "Хранилища" в redmine, то лечить так:
$ git reset --soft HEAD^
$ edit
$ git commit -a -c ORIG_HEAD

о чём говорит нам git help reset, и слить эти изменения в репозиторий:
git push -f origin

Комментариев нет: