読者です 読者をやめる 読者になる 読者になる

ponkiti's blog

主に自分用、イベント参加メモや備忘録として利用

複数の端末から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にデプロイできた!

参考