#環境
- MacBook Pro Late2016(macOS Sierra v10.12.3)
- Git (v2.10.1)
- GitHubアカウントA(hoge)
- GitHubアカウントB(fuga)
#状況
Gitにはメインでhogeを使っていた。とある理由で新しいアカウントfugaに移行しようとした。
SSH Keyをhogeから削除し、fugaに登録し、Gitでのアカウント名やメールアドレスも新しくし、これで行けるだろうと新規リモートリポジトリ(test)を作成。ローカルリポジトリに操作を行おうとした。
$ git init
~ ファイル作成 ~
$ git add .
$ git commit
$ git push https://github.com/fuga/test master
remote: Permission to fuga/test.git denied to hoge.
fatal: unable to access 'https://github.com/fuga/test/': The requested URL returned error: 403
んん?どこかにhogeの情報が残っているのか?
#検証
-
リポジトリ再作成
とりあえずローカル・リモート共にリポジトリを再作成。
当然のようにダメ。 -
SSH keyの再登録
SSH keyを新しく作成し、fugaに登録。
ダメ・・・。 -
認証情報のキャッシュ
gitの認証情報をキャッシュできるらしいので無効にしてみる。
$ git config --global --unset credential.helper
ダメ。
認証情報の裏側を見るコマンドがあるらしいので試した。
コマンドを入力すると対話モードになり、空行を入れると標準出力で返してくれるらしい。
$ git credential fill
protocol=https
protocol=https
username=hoge
password=password
なんかでてきた。これを消すにはどうしたら・・・?
git credential reject等試すがダメ。
#結論
MacOSだとアカウント情報はキーチェインに保存されていくようで、そこに保存されているログイン情報を削除すればよかった。
つまり、アプリケーション->ユーティリティ->キーチェインアクセスを開き、名前がgithub.comとなっているものを削除することでhogeのログイン情報が削除された。再度pushするとログイン要求が出て正常にpushできた。
←コレ
ほんとに下らないことに時間を使ったような気がする。悲しい。
#参考