Weed.nagoya:便利ツールでネット活用

「Feel Physics」という物理教育アプリ販売会社で、アプリを開発しています

WindowsからherokugardenにGitでデプロイするには

新しい記事があります。

リンク: herokuにgitでデプロイしてdb:push・・・できませんでした(涙): Non-programmer's Ruby in Pocket.

herokuにgitでデプロイしてdb:pushするはずだったんですが・・・うまくいきませんでした(涙)


追記:herokugardenはデータベースの中身をローカルから更新できません。herokuは可能です(ただしherokuには、WebベースのIDEはありません)。使い込むならherokuの方を使うことをオススメします。

herokugardenにWindowsからGitでデプロイしてみたので、やり方を記録しておきます。流れは以下のような感じです。

まずは自分の鍵を作ります。

090520herokugardenmakekey

herokugarden を入手

090520herokugardeninstallherokugard

ローカルレポジトリを作成

090520herokugardenlocalrep

リモートレポジトリを作成

090520herokugardencreate

pushコマンドでローカルリポジトリのデータをリモートレポジトリに移す

090520herokugardenpush

 

以下、詳細です。

1)まずWindows用のGitをインストールします。

リンク: msysgit - Google Code.

Git on Windows

1-1)まずは自分の鍵を作ります。

090520herokugardenmakekey

これは暗号化のために必要です。先ほどインストールしたGitのGUI版で簡単に作ることができます。場所は以下のとおりです。

090519gitgui

2)herokugardenにはGitの使い方の説明がないので、herokuの説明を読みながら作業します。なので、この記事は「heroku」を「herokugarden」と読みかえてあげる必要があります。

リンク: Heroku | Heroku Quickstart Guide.

If you aren’t already using Git to track the app’s revisions, run these commands:

具体的には以下のことをやります:

2-1)Ruby Gems で herokugarden を入手

090520herokugardeninstallherokugard

$ sudo gem install herokugarden
Successfully installed heroku-0.6
1 gem installed

NetbeansならGUIでインストールできます。場所は以下のとおりです。

090519netbeansrubygems

2-2)Gitでローカルレポジトリ※を作成

090520herokugardenlocalrep

$ git init
Initialized empty Git repository in .git/
$ git add .
$ git commit -m "new app"
Created initial commit 5df2d09: new app
44 files changed, 8393 insertions(+), 0 deletions(-)

2-3)入手したherokugardenコマンドでリモートレポジトリ※を作成

090520herokugardencreate

$ herokugarden create
Enter your HerokuGarden credentials.
Email: joe@example.com
Password:
Uploading ssh public key /Users/joe/.ssh/id_rsa.pub

これでうまくいっているはずなのですが、私はうまくいかなかったので、以下のようにしてherokugardenを作り直しました。

 

$ git remote rm herokugarden
$ git remote add herokugarden git@herokugarden.com:untitled-11d6c4c.git

2-4)herokugarden pushコマンドでローカルリポジトリのデータをリモートレポジトリに移す

090520herokugardenpush

 

$ git push herokugarden
Enter passphrase for key :
To git@herokugarden.com:untitled-xxxxxxx.git
! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to 'git@herokugarden.com:untitled-xxxxxxx.git'

あれれ、うまくいきません。どうもherokugardenが勝手に生成したコードと競合を起こしてしまっているようです。

090520herokugardenreject

そこで、pushに「強制」オプション( -f )を付けます。

090520herokugardenforce

 

$ git push herokugarden -f
Enter passphrase for key :
Counting objects: 141, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (134/134), done.
Writing objects: 100% (141/141), 234.55 KiB | 242 KiB/s, done.
Total 141 (delta 32), reused 0 (delta 0)
refs/heads/master: 61c8afc325a8de2f76124674a9843cde09b21baf -> eb66762f0e437409
c0f2229dbd6138dca242d62
HEAD is now at eb66762... hp usecase sim
Running migrations...
(in /mnt/home/userapps/73354)
== 20090517153552 CreateChoices: migrating ====================================
-- create_table(:choices)
   -> 0.0607s
== 20090517153552 CreateChoices: migrated (0.0609s) ===========================

== 20090518044040 CreateParagraphComments: migrating ==========================
-- create_table(:paragraph_comments)
   -> 0.0214s
== 20090518044040 CreateParagraphComments: migrated (0.0215s) =================

== 20090518054531 CreateParagraphs: migrating =================================
-- create_table(:paragraphs)
   -> 2.6348s
== 20090518054531 CreateParagraphs: migrated (2.6349s) ========================

App restarting...
######################################################################## 100.0%

Deployed to http://untitled-xxxxxxx.herokugarden.com
To git@herokugarden.com:untitled-xxxxxxx.git
+ 61c8afc...eb66762 master -> master (forced update)

なんとかうまくいきました。ほっとしますね。

これについては、以下の記事がとてもわかりやすいイメージを載せてくれています。

リンク: せっかちな人のための git 入門 - git をインストールし、共同で開発できる環境を整えるまで : 僕は発展途上技術者.

mac% git push origin master (master を origin にプッシュするという意味)