git diff での日本語の文字化け
Overview
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 のページャ設定を行っておくこともできます。
~/.bash_profile
export GIT_PAGER="LESSCHARSET=utf-8 less"
これで正しく日本語の差分が表示されるようになります。
$ git diff
diff --git a/README.txt b/README.txt
index 0005c4e..5d6ea9c 100644
--- a/README.txt
+++ b/README.txt
@@ -1 +1 @@
-あいうえお
+かきくけこ
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
下記より引用
完コピしましたありがとうございます。
https://maku77.github.io/git/settings/garbling.html