パソコンを買い替え、githubをインストールして、リモートリポジトリにpush使用とした際に以下のようなエラーが発生しました。
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
目次
対処方法1 鍵の再設定
調べてみるとsshの鍵を再設定すればできるという記事がありましたが、自分の場合は再設定してもダメでした。
鍵の再設定の仕方はこちら
対処方法2 リポジトリ名があっているかどうか確認
さらに調べていると、リモートリポジトリがそもそも存在していないか、名前が間違っているのではないか、とのことだったので
git remote -v
でリポジトリ名を確認してみたところ、リポジトリ名が
origin git@github.com:aaaaaaaa/bbbbbbbb.git (push)
となっていました。
GitHubに存在するリポジトリ名はhttps://から始まるものなので、ここでようやくリポジトリ名を間違えていることに気が付きました。
僕はadd時に
git remote add origin git@github.com:aaaaaaaa/bbbbbbbb.git
と入力してしまっていたため、これを
git remote add origin https://github.com/aaaaaaaa/bbbbbbbb
とhttps:// が先頭につくものに変えて実行し、もう一度pushしてみました。
すると今度はエラー内容が変わり、
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/aaaaaaaa/bbbbbbbb'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
というエラーが発生しました。
こちらについても調べてみると、
git fetch && git merge origin/master
というコマンドを実行すればよいとのことなので、このコマンドを実行しpushしてみたところ無事できました!
もしもまだエラーが出る場合は…
これでもまだエラーが出る場合は、
git merge --allow-unrelated-histories origin/master
というコマンドを実行してからpushすればできるそうです。