結論
git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager-core.exe"
このコマンドでエラーが出る場合
--add
を付けて、
git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager-core.exe" --add
あるいは、--replace-all
を付けて、
git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager-core.exe" --replace-all
どちらかのコマンドを実行すると、問題なく設定できる。
概要
GitのHTTPS認証に個人アクセストークンを求めるのは間違っているだろうか (Git Credential Manager のすゝめ)
この記事を参考にして、WSL2によるHTTPS接続の設定をしていたのですが、どうもうまくいかずに困っていました。
ヒットしたのはこの記事のみでした。
git - Github doesn't cache my password - Stack Overflow
この記事によれば、
git config --global --edit
git config -l --show-origin
のコマンドを叩くと現在の設定を確認できるよ、とだけ書いてあります。
しかし、それ以上の情報はよくわからず、困ってしまいました。
という訳で、エラー文を読み返してみました。
$ git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager-core.exe" warning: credential.helper has multiple values error: cannot overwrite multiple values with a single value Use a regexp, --add or --replace-all to change credential.helper.
改めて読み直してみたところ、日本語にするとこうなります。
「警告:このコマンドを実行すると、認証のヘルパーが複数の値を持ってしまいます。エラー:複数の値を一つの値の上に上書きすることはできません。正規表現を使うか、--add か --replace-all を使えば認証のヘルパーを変更できるよ」
というわけで、コマンドの最後に--add
を付けてもう一度やってみたら……無事に解決しました。
--add
でコマンドを実行後にgit config -l --show-origin
を改めて実行したところ、
file:/home/lef237/.gitconfig credential.helper=/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager-core.exe
など、複数の行が追加されていました。どうやらGitにおける設定がたくさん追加されたようでした。
これで、Windows側のcredential-managerを参照することができるようになるはずです。
すごく単純なことでしたが、Google検索でも情報が出てこなかったので少し焦りました。落ち着いてエラー文を読んで、その意味をきちんと理解することが大事だと改めて分かりました。
同じエラーが出た方は、是非参考にしてみてください!