TortoiseGit利用時に、GitHubにコードをPushしようとすると
unable to access (exit code 128)
になってしまうことがある。
エラーの原因は何なのか。
どうすればエラーを回避できるのか。
今回はこのunable to accessエラーの解決方法について記述する。
エラー現象
TortoiseGitを使って、ローカルのWindowsPCからリモートのGitHubリポジトリにソースコードをPushしようとした際に以下のエラーメッセージが表示される。
remote: Permission to (Organization)/(project).git denied to (User ID). fatal: unable to access 'https://github.com/(Organization)/(project)/': The requested URL returned error: 403 git did not exit cleanly (exit code 128)
エラー原因
エラーの原因はエラメッセージにあるように、ユーザーIDにGitHubのリポジトリへのアクセス権限が無いこと。
アクセス権限のある正しいユーザーを使ってアクセスすればエラーにはならない。
しかしここでTortoiseGitユーザーを混乱させる現象が発生する。
ユーザー情報を入力できない
TortoiseGitを使ってPushする際、初回のみユーザーIDとパスワードの入力を求められ、以降は入力を求められない。
なので別のリポジトリ用のGitHubユーザーアカウントを覚えさせてしうと、別のユーザーアカウントで作成したリポジトリにアクセスする際に自動的に認証エラーになってしまいアクセスできなくなってしまう。
解決方法
解決方法としてはTortoiseGit(正確にはWindows)に覚えさせたユーザー情報を削除してアクセスし直すこと。
これはやられました。何回やってもエラーになるのは当たり前でした。ユーザー名が間違っていたのが判明したので変更すればいいのかなと思い、再度プッシュした所、同じようにエラー128になりました。しかもユーザー名とパスワードを入力できなくなっています。これは困りました。原因が分かっているのに、、、
調べること数十分ようやく見つけました。どうやらwindowsの方でgitの資格情報を保存してしまっている為、再度入力ができなかったのです←本来なら毎回入力する手間を省いてくれるありがたいが今回ばかりはこれにやられました。(笑)
gitとtortoiseGitの導入(エラー128の対処) | あなたの知識・技術をカリキュラムにしよう
https://www.techry.net/blogs/1851
操作方法はWindowsの検索エリアで「資格情報マネージャー」と入力して画面を開き、Windows資格情報を呼び出す。
資格情報マネージャー → Windows資格情報
するとWindowsに記憶されている資格情報の一覧が表示されるので、その中から「github.com」関連を選択して削除すれば良い。
削除が成功すると次回のGitHubへのPush時にユーザー情報(ログイン情報)を入力できるようになる。
参考:Accessing Credential Manager
まとめ
- 'unable to access (exit code 128)'はログイン情報の間違い
- TortoiseGitはWIndowsに記憶している資格情報でGitHubにアクセスしている
- Windowsが記憶している資格情報は「資格情報マネージャー」から削除できる