結論: ~/.netrcにGitHubなどの認証情報が置いてあったりするからそこを消せ
きっかけ
- 会社用アカウントと個人アカウントをディレクトリ別でgitconfigを分けて読み込んでいた
- 会社用アカウントしかしばらく使ってなかった
- 久しぶりに個人アカウントでpushしようとしたら、コミット時は個人アカウントが反映されるのにpush時は会社用アカウントが参照されてしまう
これで2日ぐらい無駄にしました。
やったこと
pushするときにユーザ指定
エラーが発生した、そしてそもそもpushするたびにやってたらキリがないのでやめた
gitconfigの参照ユーザを全部個人アカウントに変える
gitconfigに会社用アカウントが一切ないのになぜか会社用アカウントが参照される
gitconfigのcredential.helperを消す
効果なし、push時に会社用アカウントが参照される
usr/local/etc配下のgitconfigとgitconfig.defaultで関係ある内容を消す
絶対これだと思ったのに意味無し、push時に会社用アカウントが参照される
キーチェーンアクセスからGitHubの認証情報を消す
意味なし、push時に会社用アカウントが参照される
でもパスワード認証が廃止されてるから情報が古かったら消してたほうが良い
答え: ~/.netrcの認証情報を消す
なんか過去の自分が入力をサボるために多分置いたんであろうファイルが悪さをしていた、最悪
とりあえず2ユーザ分ける場合はnetrcを使うのはあんまり良くなさそうです。
1 machine github.com
2 login github-username
3 password hashhashhashhash
git pushしてみる
❯ git push
Username for 'https://github.com':
これで正しくユーザ名が求められました。ありがとうございました。
この記事を見てくださっている方はあとはもう自分でどうにか出来ると思います。