Вернее сказать настройка правильного отображения русских шрифтов (кириллицы) в Git.
В этом посте я приведу несколько примеров использования кириллицы в Git. Сразу хочу сказать, что Git по умолчанию нормально работает с юникод, поэтому лучше сразу вести вести все свои проекты в юникод, если это возможно конечно.
И так сперва рассмотрим как Git работает с русским языком в юникод.
Создадим каталог UTFtest и в нем репозитарий Git. Дополнительных настроек ни каких не делаем, кроме как задаем имя и email пользователя.

Теперь создаем текстовый файлик TestUTF.txt в кодировке юникод. Я использовал для этого Notepad++, но можно и любой другой, главное чтобы он поддерживал создание файлов в юникод без BOM.

В настройках Notepad++ отключение BOM выглядит так

И так мы создали файлик, теперь, посмотрим статус, добавим файл в индекс и сделаем первый коммит.

И так мы сделали первый коммит нашего файла. Git правда предупредил, что он подозревает что мой терминал не поддерживает юникод, и дал совет как это можно исправить. Но это на самом деле не так. Мой терминал поддерживает юникод. И сейчас мы в этом убедимся.
Добавим в наш файлик вторую строчку.

Теперь опять посмотрим статус, добавим изменения в индекс и закоммитим.

Помним, что мы редактировали файлик в кодировке юникод (UTF) без BOM.
Теперь посмотрим простой лог наших изменений.

Git вывел краткую информацию о наших коммитах. Кто, когда, комментарий и контрольную сумму каждого коммита.
Теперь посмотрим дельту, разницу между нашими коммитами, то есть более подробно, что было изменено.

Как видим Git показал нам что было изменено в файле во втором коммите при сравнении его с первым коммитом.
Пока не будем вдаваться в подробности всего вывода информации. Сейчас главное что русский текст комментариев к коммитам, а так же русский текст в текстовом файле при выводе дельты в логе отображается правильно.
От сюда вывод, что Git по умолчанию использует UTF-8 и как следствие с русским языком проблем не возникает.
Теперь на всякий случай покажу что же такое этот BOM и как сей зверь выглядит в коммитах.
Для этого создам текстовый файл в Far Manager, добавлю его в индекс, закоммитю, добавлю в файлик еще одно строчку и снова сделаю коммит.

Хотя в редакторе Far manager служебного кода BOM не видно, но он там есть 
На заметку: В редакторе Far manager, так же можно отключить создание BOM метки.
Все! Мы убедились, что при использовании кодировки UTF-8 ни каких проблем с русским языком, как в комментариях к коммитам, так и с просмотром русского текста в дельте логов, не возникает. И при этом не надо делать ни каких дополнительных настроек.
Исключение может составлять только если у вас есть файлы с русскими именами. Приведу примерчик. Создам файл Русский.txt. И посмотрим статус и содержимое каталога в консоли.

Вот как выводит консоль имена файлов на русском языке.
Чтобы это подправить дадим команду
$ git config --local core.quotepath false
И снова посмотрим статус и содержимое каталога в директории

Теперь Git стал нормально отображать русские названия файлов. А вот линуксовая утилитка ls с русским не подружилась (вернее сказать bash не подружился), но это ни какого отношения к Git не имеет.
Но если очень хочется то можно заставить ls выводить русские имена файлов правильно задав дополнительный ключик
$ ls --show-control-chars

Теперь добавим на наш файлик Русский.txt в индекс и закоммитим его. Потом добавим в этот файл строку и снова закоммитим. А затем посмотрим дельту

Как видим с русским языком снова все хорошо. То есть дополнительная настройка понадобилась только в том случае, когда есть файлы с названиями на русском языке.
Теперь настроим Git на работу с русской кодировкой Windows (CP 1251)
Создадим каталог CP1251 и Git репозитарий в нем. Затем создадим файлик Win.txt в стандартной кодировке Windows. Посмотрим статус, добавим этот файл в индекс и закоммитим его.

Напомню что все это дается с установками Git по умолчанию.
Теперь добавлю в файлик Win.txt еще одну строчку и закоммичю его, а затем посмотрим дельту, то есть разницу между первым и вторым коммитом.

И так смотрим разницу между коммитами

Ууууупс! Что за ерунда???? Видим что комментарии к коммитам отображаются правильно, так как они в юникоде (UTF-8), а вот содержимое файлов у нас идет кодами, что не очень то удобно, верней вообще не удобно. Это происходит потому, что вывод команды git log, так же происходит в UTF-8.
Попробуем поправить ситуацию. Дадим команду
$ git config --local core.pager "iconv.exe -f cp1251 -t utf-8 | less"
Данная команда переопределяет вывод пейджера (программы less, стандартной линуксовой программы постраничного вывода). Она конвертирует кодовую страницу cp1251 в UTF-8, как видно из синтаксиса команды iconv.exe.
iconv.exe идет вместе с дистрибутивом Git, поэтому нет смысла качать дистрибутив с сайта. Единственное ей могут понадобится дополнительные библиотеки, которые можно скачать тут. Нужно выбрать Dependencies (zip)

Теперь посмотрим еще раз дельту

Мы видим что теперь содержимое файлов в дельте отображается правильно, а вот комментарии к коммитам стали отображаться не правильно. Это произошло потому, что весь вывод команды git log, конвертируется и строчки комментариев были рассмотрены как-будто они в кодировке cp1251.
Попробуем исправить и это командами
$ git config --local i18n.commitEncoding utf8
$ git config --local i18n.logoutputencoding cp1251
Я несколько раз поправил файлик. Посмотрим два последних коммита и их дельту.

Как видно почти все отображается нормально. Исключение составляет только вывод после команды git commit (я его подчеркнул красной чертой и подсветил желтым). С этим можно конечно смирится если очень хочется вести проект в кодировке Windows CP1251. Как поправить этот маленький недочет я не знаю. Может кто подскажет – буду очень признателен.
Просто git log без дельты тоже выводит все нормально

Файл настроек Git для данного проекта CP1251 выглядит так:


Но вообще лучше вести проекты в UTF-8