2026年10月20日火曜日

Git: Windows環境での日本語ファイル名文字化け(core.quotePath)備忘録

 

1. 発生の原因

  • core.quotePath = true の仕様: Gitはファイル名をUTF-8で管理しているが、半角英数以外のマルチバイト文字(日本語など)が含まれるパスを出力する際、安全性のために8進数エスケープ(例: \343\...)に変換して出力するデフォルト仕様になっている。

  • 影響: バッチファイルなどで git status や git diff の出力を処理する際、このエスケープ文字列がそのまま渡り文字化けを起こす。

2. 対策

日本語ファイル名をエスケープせず、そのまま(UTF-8生文字列)出力させる設定に変更する。

  • リポジトリ単位で適用する場合:

    DOS
    git config core.quotePath false
    
  • PC全体(ユーザー全体)に適用する場合:

    DOS
    git config --global core.quotePath false
    

3. Windows環境におけるGit Configファイルの保存場所

設定のスコープ(適用範囲)により保存先が異なる。優先順位は「ローカル > グローバル > システム」。

  1. ローカル設定(リポジトリごと)

    • パス: <プロジェクトのパス>\.git\config

    • 編集コマンド: git config --local --edit

  2. グローバル設定(ユーザー全体)

    • パス: C:\Users\<ユーザー名>\.gitconfig

    • 編集コマンド: git config --global --edit

  3. システム設定(PC全体)

    • パス: C:\Program Files\Git\etc\gitconfig

    • 編集コマンド: git config --system --edit