環境
- Windows10
- SourceTree 2.3.1.0 / GitBash
- GitHub
発生した事象
- GitHubで別アカウント管理してるリポジトリにPushしようとしたらPermission Error
- エラーログには普段使っているアカウント名が表示されている
- そういえば設定変更してなかったので、git config --localでアカウントを切り替えてPushしようとしたら再度Permission Errorが発生
- エラーログには何故か切り替え前のアカウント名が表示されている
- why?
原因と解決策
git-credential-helperが有効になっており、name/emailがWindowsの資格情報で管理されていた。
それによりhttpsでGitHubへアクセスした際に--localの設定を使うまえにhelperで切り替え前アカウントの情報が参照されていた模様。
下記の方法でhelperが使う内容を変更すれば解決した。
- 「コントロールパネル」→「ユーザーアカウント」→「資格情報マネージャ」を選択する
- 「汎用資格情報」部分の「git:https://github.com」を選択する
- 「編集」リンクを押下して切り替え後アカウントの設定を入れる
雑記
そういえば、SourceTreeで最初にアクセスした時に認証ダイアログが出て入力したような気がするが、その時にhelper用のWindows資格情報が設定されていたのかな。