- 環境
- macOS Catalina バージョン10.15.2
- git version 2.21.0
事象 : git diff
したら日本語のファイル名が文字化けした
$ git diff --name-only --diff-filter=ACMRT 9744fd5 686a212
"GitDiff\343\201\247\346\226\207\345\255\227\345\214\226\343\201\221.md"
原因 : core.quotepath
を設定していないから
git config に、quotepath = false ってのも書いておくと、ファイル名に、日本語が文字化けする(正確にはエスケープされる)のを、あっさりと解決してくれるようです。
git log、git diff、git showでの日本語の文字化けをまとめて対策 | WWWクリエイターズ
# core.quotepathの設定がない
$ git config --list | grep core
core.excludesfile=/Users/ponsuke/.gitignore_global
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
対応 : 自分用の設定にcore.quotepath
を設定する
私は日本人です。なので特定のリポジトリではなくて自分の設定全体(global)にcore.quotepath
を設定します。
git の config 情報の設定は、3段階に分かれている。システム全体 system と、ユーザ全体 global と、対象リポジトリのみ local ですな。
gitconfig の基本を理解する - Qiita
# 設定して
$ git config --global core.quotepath false
# 確認してみる
$ git config --global --list | grep core
core.excludesfile=/Users/ponsuke/.gitignore_global
core.quotepath=false
# もう一回やってみる
$ git diff --name-only --diff-filter=ACMRT 9744fd5 686a212
GitDiffで文字化け.md