なぜ緊急回避かというと原因わかってないのでした...orz
herokuにアカウントを複数持っていて、heroku-accountsプラグインでアカウント管理をしている時の話です。その時に、例えばコラボレータとして招待されたappをcloneしようとして、
% git clone git@heroku.com:xxx.git
をしたら、
Cloning into 'xxx'...
! Your account hogefuga@gmail.com does not have access to xxx
!
! SSH Key Fingerprint: xxxxxx
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
と怒られてしまいました。
% heroku accounts:default hogehuga
もしていて、そのアカウント(この例だと hogehuga
)でブラウザからログイン→appが見れることを確認し、かつsshの設定も正しいことを確認した上で、なお上のエラーが出ることがあります。(他の人はできたのでどうも何かがおかしいらしいのですが確認できず。。)つまり、使いたいアカウントではない別のアカウントでcloneしようとして怒られてるパターンです。
このエラーが出て積んでいたところを会社の先輩に教えていただいたm(_ _)mのでそのメモです。後日別の方法も見つけたのでその後に後述します。
1. 空ディレクトリを作成
% mkdir xxx
% cd xxx
2. git管理下にしてアカウント設定
git init
% git account:set hogefuga
3. remoteにherokuにあるリポジトリのURLを追加
% git remote add heroku git@heroku.com:xxx.git
4. remote update
% git remote update
もしくは
% git fetch heroku
つまり、適当なgit管理下ディレクトリを作ってそれのリモートにherokuリポジトリを設定してあげればいいようです。git管理下ならheroku accountによるアカウント切り替えがそのディレクトリ内の設定になる( ./.git/config
に書かれる)ので、git account:set
コマンドで指定した通りのアカウントが使える、というわけです。
別案
リポジトリURLの com
のところをアカウント名にしてcloneしてもいけるようです。(実際にherokuにpushしているリポジトリの .git/config
を参考)
% git clone git@heroku.hogefuga:xxx.git
なぜcloneできないのか原因がわからないのがもやんとしますが、困るときは困りそうなので備忘録として。