同一ドメインのリポジトリの認証情報を複数保存しているとGit接続に失敗する
Contents
環境
- Git 2.18.1
背景
ログインが必要なリポジトリにGitで接続する際、事前に認証情報を保存しておくと、
ユーザ名・パスワードを入力する手間を省くことができる。
git config --global credential.helper store
しかし、同一ドメインで複数の認証情報が登録している状態だと、次のような接続エラーが起こる。
$ git pull
remote: The project you were looking for could not be found.
fatal: repository 'https://example.com/example.git/' not found
対策
接続エラーが起こる理由は、どの認証情報を取り扱うべきかGitが判断できないため。
$ cat $HOME/.git-credentials
https://<USERNAME>:<PASSWORD>@example.com
https://<USERNAME>:<PASSWORD>@example.com
対策方法としては、プロジェクト配下のGit設定にドメイン+ユーザ名を設定する。
$ git config --local credential.https://example.com.username <YOUR USERNAME>
すると、Gitはどの認証情報を利用するべきか判断できるようになる。
$ git pull
Already up to date.