git diff での文字化け
git diff
の出力に日本語が含まれているときに、下記のように2桁の数値ばかりの表示に文字化けしてしまうことがあります。
$ git diff
diff --git a/README.txt b/README.txt
index 0005c4e..5d6ea9c 100644
--- a/README.txt
+++ b/README.txt
@@ -1 +1 @@
-<E3><81><82><E3><81><84><E3><81><86><E3><81><88><E3><81><8A>
+<E3><81><8B><E3><81><8D><E3><81><8F><E3><81><91><E3><81><93>
このような場合は、ページャの設定 (core.pager
) で下記のように LESSCHARSET
を設定するようにします。
$ git config --global core.pager "LESSCHARSET=utf-8 less"
あるいは、システムの環境変数で Git のページャ設定を行っておくこともできます。
これで正しく日本語の差分が表示されるようになります。
$ git diff
diff --git a/README.txt b/README.txt
index 0005c4e..5d6ea9c 100644
--- a/README.txt
+++ b/README.txt
@@ -1 +1 @@
-あいうえお
+かきくけこ
Windows の場合は、環境変数 LANG
を設定しておくとよいようです。
C:\> set LANG=ja_JP.UTF-8
git status での文字化け
git status
の表示で、日本語のファイル名が下記のように文字化けしてしまうことがあります。
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
"\343\201\202\343\201\202\343\201\202.txt"
nothing added to commit but untracked files present (use "git add" to track)
このような場合は、下記のように core.quotepath
設定を false
に設定します。
$ git config --global core.quotepath false
これで正しく日本語のファイル名が表示されるようになります。
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
あああ.txt
nothing added to commit but untracked files present (use "git add" to track)
設定の確認と削除
上記で設定した値を確認するには次のようにします。
$ git config --global --list
core.pager=LESSCHARSET=utf-8 less
core.quotepath=false
設定した値をクリアするには次のようにします。
$ git config --global --unset core.pager
$ git config --global --unset core.quotepath