C:\Program Files\Git\mingw32\etc\gitconfig is 何? gitconfig には global と local の他に system もある

gitconfig に credential.helper=wincred を書いていないのに、wincred がなぜか働いているという不思議な現象に遭遇。

「他にも読まれてる gitconfig がある?」と仮説し、gitconfig でファイル検索してみた。そしたら C:\Program Files\Git\mingw32\etc\gitconfig という見慣れないファイルがヒット。ここに wincred が指定されていた。

仮説は当たっているっぽい?……というわけで原典をあたって答え合わせ。

当たり。--system、--global、--local(localオプションは明示的に指定しなくてもいいけど)の順になっていると書いてある。知らなかった。system というレイヤーがあるんですね。

Windows における各ファイル所在

win7、git version 2.16.2.windows.1 の場合。

  • system
    • マシンレベル
    • たとえば C:\Program Files\Git\mingw32\etc\gitconfig
  • global
    • ユーザーレベル
    • %userprofile%\.gitconfig
  • local
    • ローカルリポジトリレベル
    • (ローカルリポジトリのルート)\.git\config

参考: Git for Windows の設定ファイルの場所 - Qiita