おんがえしの blog

作ったプログラムと調べた技術情報

git log の文字化けを直す

git log がWindows等で、

$ git log
commit 0346fa2652424e0362eca86491aa807426d1cd49
Author: ongaeshi <ongaeshi0621@gmail.com>
Date:   Sun Sep 11 23:30:06 2011 +0900

    荳 驛ィ譌・譛ャ隱槭ヵ繧。繧、繝ォ縺ァ螟画鋤縺ォ螟ア謨励☆繧九ヰ繧ー菫ョ豁」

commit f1a9b8686a48698e1e283d06f34e88e487b51aa3
Author: ongaeshi <ongaeshi0621@gmail.com>
Date:   Sun Sep 11 23:18:23 2011 +0900

    rcov縺檎┌縺 腸蠅 〒繧ゅユ繧ケ繝医′蜃コ譚・繧九h縺 ↓
.
.

のように文字化けしてしまう、ちゃんと表示させたい。

対策1. --encoding=sjis オプションを付ける

シェルの文字コードsjisならば、--encoding=sjisオプションを付ける。

$ git log --encoding=sjis
commit 0346fa2652424e0362eca86491aa807426d1cd49
Author: ongaeshi <ongaeshi0621@gmail.com>
Date:   Sun Sep 11 23:30:06 2011 +0900

    一部日本語ファイルで変換に失敗するバグ修正

commit f1a9b8686a48698e1e283d06f34e88e487b51aa3
Author: ongaeshi <ongaeshi0621@gmail.com>
Date:   Sun Sep 11 23:18:23 2011 +0900

    rcovが無い環境でもテストが出来るように
.
.

対策2. 独自コマンド git logs を定義する (永続的)

$ git config --global alias.logs 'log --encoding=sjis'

以下のように ~/.gitconfig に alias.logs が定義されていれば成功。

[core]
.
.
[alias]
	today = log --oneline --since='12 hour ago'
+	logs = log --encoding=sjis

対策3. git config でデフォルトの出力文字コードsjisにする

ちょっと調べたけど分かりませんでした、情報求む。