git pushしようとするとアクセスできないっすよと言われる...。
git複数アカウント管理の問題解決
$ git push -u origin master ERROR: Repository not found. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
「$ git remote -v」コマンドでremoteのgitのfetch/push先のアドレス確認。
$ git remote -v origin git@github.com:xxxxx/app.git (fetch) origin git@github.com:xxxxx/app.git (push)
「$ ssh git@github.com」コマンドでgithubにssh接続してみる。
$ ssh git@github.com PTY allocation request failed on channel 0 Hi yyyyy! You've successfully authenticated, but GitHub does not provide shell access. Connection to github.com closed.
「xxxxx」というユーザー名でssh接続したいのに、「yyyyy」というユーザー名でssh接続しているみたい。
「$ git config --list」コマンドでgitconfigを確認すると、ユーザー名が登録されてない...。
$ git config --list credential.helper=osxkeychain user.email=xxx.xxx@gmail.com core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true core.ignorecase=true core.precomposeunicode=true remote.origin.url=git@github.com:xxxxx/app.git remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* branch.master.remote=origin branch.master.merge=refs/heads/master
「$ git config --global user.name "{username}"」コマンドでユーザー名登録する。
$ git config --global user.name "xxxxx"
再度「$ git config --list」コマンドでユーザー名「xxxxx」が登録されていることを確認。
$ git config --list credential.helper=osxkeychain user.email=xxx.xxx@gmail.com user.name=xxxxx core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true core.ignorecase=true core.precomposeunicode=true remote.origin.url=git@github.com:xxxxx/app.git remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* branch.master.remote=origin branch.master.merge=refs/heads/master
pushしてみる。
$ git push -u origin master Counting objects: 35, done. Delta compression using up to 4 threads. Compressing objects: 100% (31/31), done. Writing objects: 100% (35/35), 18.46 KiB | 0 bytes/s, done. Total 35 (delta 5), reused 0 (delta 0) remote: Resolving deltas: 100% (5/5), done. To github.com:xxxxx/app.git * [new branch] master -> master Branch master set up to track remote branch master from origin.
プッシュ成功!
ユーザー名の登録忘れてたみたいですね。悲しみの凡ミス。
【追記】
後日pushしようとしたらできなかったので、加筆。
プッシュしようとすると...
$ git push origin master ERROR: Repository not found. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
レポジトリにアクセスできるか確認してねエラーが出る...。
$ ssh -T ERROR: Repository not found. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
SSH接続を試してみると、まだ期待していないユーザー名でログインしたことになってしまっているよう。
$ ssh -T git@github.com Hi yyyyy! You've successfully authenticated, but GitHub does not provide shell access.
秘密鍵をssh-agentに登録できていないようなので、登録します。
$ ssh-add ~/.ssh/id_rsa
再度ssh接続してみると
$ ssh -T git@github.com Hi xxxxx! You've successfully authenticated, but GitHub does not provide shell access.
期待通りのユーザーでログインできています!
これでpushできるようになったか確認
$ git push origin master Counting objects: 47, done. Delta compression using up to 4 threads. Compressing objects: 100% (43/43), done. Writing objects: 100% (47/47), 19.45 KiB | 0 bytes/s, done. Total 47 (delta 14), reused 0 (delta 0) remote: Resolving deltas: 100% (14/14), done. To github.com:xxxxx/xxx.git + 765fb79...67665aa master -> master
いけてますね!これで問題なくpushできるようになりました!
Gitに関してしっかり学びたい方へ
Gitに関してしっかり学びたいという方向けに、おすすめの本とUdemyのコースを紹介しておきます。
Gitが、おもしろいほどわかる基本の使い方33 改訂新版
Gitに関して基本を学びたい!という方にはこの本がオススメ。Gitに関して個人的には一番理解しやすかったです。
Git: もう怖くないGit!チーム開発で必要なGitを完全マスター
このコースで学べること
- Gitの基礎(データ構造、仕組み)理解
- Gitでのチーム開発の方法と一通りのコマンド
- GitHubを用いたプルリクエスト・レビュー・マージの開発フロー
- ブランチ作成とコンフリクト解消
エンジニアになってチーム開発をするときに99%使うことになるGitとGithubに関して、基本的な使い方と仕組みを理解できるコースです。
仕組みを図解で理解しながら、自分で手を動かしてコマンドを打つことで、GitとGithubの使い方を自分のものにすることができます。
GitとGithubを使ったことがない方はもちろん、なんとなくGitのコマンドを使っているけど改めて仕組みを理解しておきたい方にオススメです。
Git: もう怖くないGit!チーム開発で必要なGitを完全マスター