この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
今回は、GitHubにgit push できなくなったときの解決方法を記録します。
こんな方に向けて書いています
- 以前、公開鍵(SSH)でGitHubにログインしたことがある方
- 今回なぜかHTTPSで認証してしまった方
- 久しぶりにGitHubを使ってpushしたらエラーが出た方
- missing or invalid credentials(401) が表示された方
起きたこと
久しぶりにGitHubへpushしようとしました。
すると、次のエラーが表示されました。
missing or invalid credentials
Error: Bad status code: 401
見慣れないエラーに少し焦りました。
原因
色々調べた結果、まず原因を突き止めるために、下記のコードをターミナルで入力しました。
bash
git remote -vすると、このような結果になりました。
bash
https://github.com/ユーザー名/リポジトリ名.git以前はSSH(公開鍵)で接続していたはずなのに、今回は HTTPSになっていました。
久しぶりにGitHubを使ったことで、以前SSHで接続していたことを忘れていました。
でも、以前SSHで接続できていたので、HTTP接続からSSH接続に方針転換です。
そういえば、調べながら進めていて、今回だけリモートリポジトリへの接続方法をHTTPSにしてたのでした。
解決手順
①SSH接続確認
下記コードをターミナルに
bash
ssh -T git@github.com結果は、
bash
Hi ユーザー名! You've successfully authenticated, but GitHub does not provide shell access.SSHは正常でした。
↓「SSH 接続をテストする」についてのGithub公式ドキュメント
②リモートURLをSSHに戻す
下記コードのユーザー名と、リポジトリ名はご自身のものに変更してください。
bash
git remote set-url origin git@github.com:ユーザー名/リポジトリ名.git下記コードで確認します。
bash
git remote -v結果はこうなりました。
bssh
git@github.com:ユーザー名/リポジトリ名.git③ 再度push
bash
git push origin mainGithub上で確認し、無事pushに成功しました!
学び
- 久しぶりにGitHubを使うと設定を忘れていることがある
- 以前SSHを使っていたなら、SSHに戻すのが早い
- まず git remote -v を確認
エラーが出たときは焦らず、まず git remote -v で接続方式を確認することが大切だと学びました。
同じエラーで困っている方の参考になれば嬉しいです。