1. 発生の原因
core.quotePath = trueの仕様: Gitはファイル名をUTF-8で管理しているが、半角英数以外のマルチバイト文字(日本語など)が含まれるパスを出力する際、安全性のために8進数エスケープ(例:\343\...)に変換して出力するデフォルト仕様になっている。影響: バッチファイルなどで
git statusやgit diffの出力を処理する際、このエスケープ文字列がそのまま渡り文字化けを起こす。
2. 対策
日本語ファイル名をエスケープせず、そのまま(UTF-8生文字列)出力させる設定に変更する。
リポジトリ単位で適用する場合:
DOSgit config core.quotePath falsePC全体(ユーザー全体)に適用する場合:
DOSgit config --global core.quotePath false
3. Windows環境におけるGit Configファイルの保存場所
設定のスコープ(適用範囲)により保存先が異なる。優先順位は「ローカル > グローバル > システム」。
ローカル設定(リポジトリごと)
パス:
<プロジェクトのパス>\.git\config編集コマンド:
git config --local --edit
グローバル設定(ユーザー全体)
パス:
C:\Users\<ユーザー名>\.gitconfig編集コマンド:
git config --global --edit
システム設定(PC全体)
パス:
C:\Program Files\Git\etc\gitconfig編集コマンド:
git config --system --edit