複数の端末からHerokuにgit pushする
会社PCで一度Herokuにデプロイしていたが、自宅PCでローカルリポジトリのファイルを更新後、この自宅PCからHerokuにデプロイするためにgit push
したらエラーが出た。結果的にはデプロイできたので、それまでの手順をメモしておく。
複数PC間でHerokuのある一つのアプリケーションを共有する方法について、意外と書かれていないのでデプロイするまでにかなり苦労した。
手順
もう一方のPCでも、Herokuに登録済みのメールアドレスとパスワードを設定する。
[vagrant@localhost sample_app]$ heroku login Enter your Heroku credentials. Email: メールアドレス Password (typing will be hidden): Authentication successful.
下記はうまく行かなかったケース。
[vagrant@localhost sample_app]$ git push heroku fatal: 'heroku' does not appear to be a git repository fatal: The remote end hung up unexpectedly
GitHub同様、使用しているPCごとにHerokuに公開鍵を設定する必要がある。
~/.ssh
ディレクトリ直下に秘密鍵と公開鍵を作成しておくこと。- 標準の公開鍵名(
id_rsa.pub
)でない場合、heroku keys:add ~/.ssh/任意の公開鍵名
と指定できる。
[vagrant@localhost sample_app]$ heroku keys:add Found an SSH public key at /home/vagrant/.ssh/id_rsa.pub Would you like to upload it to Heroku? [Yn] y Uploading SSH public key /home/vagrant/.ssh/id_rsa.pub... done
複数のPCでHerokuを使えるようにするため、プラグインをインストールする。
[vagrant@localhost sample_app]$ heroku plugins:install git://github.com/ddollar/heroku-accounts.git Installing heroku-accounts… done
Herokuのアカウントに任意のアカウント名(今回はHomeforMac
)を追加する。
[vagrant@localhost sample_app]$ heroku accounts:add HomeforMac Enter your Heroku credentials. Email: メールアドレス Password (typing will be hidden): Add the following to your ~/.ssh/config Host heroku.HomeforMac HostName heroku.com IdentityFile /PATH/TO/PRIVATE/KEY IdentitiesOnly yes
プロジェクトにアカウントを設定する。設定したいプロジェクトのディレクトリでコマンドを実行すること。
[vagrant@localhost sample_app]$ heroku accounts:set HomeforMac
設定したアカウントを確認する。
[vagrant@localhost sample_app]$ git config heroku.account HomeforMac
Herokuに登録済みのアプリケーション名(今回はrailstutorial-3-sampleapp
)を指定して実行する。
[vagrant@localhost sample_app]$ heroku git:remote --app railstutorial-3-sampleapp Git remote heroku added
git push
する。
[vagrant@localhost sample_app]$ git push heroku (省略) To git@heroku.com:railstutorial-3-sampleapp.git c5a3532..84c576b master -> master
Herokuにデプロイできた!