はじめに
herokuアプリを本番用として、ローカル(または開発用サーバ)で開発アプリを動かすためのgit管理方法を備忘として残しておく。
masterは使わない
特にgit clone
してきたとき、clone元(本家)を保持しておくため。
本家にアップデートがあったときには、まずmasterへgit pull
して本家の変更を反映する。Changelog等も参考にしつつ、devへgit merge
する。
dev, prodというブランチを作る
branch | 位置付け |
---|---|
master | 本家用。ここは変更しない |
dev | 開発用。まずここを更新&テスト |
prod | 本番用。herokuへプッシュする対象ブランチ |
ブランチの作り方は以下。
git
% git branch dev
% git branch prod
基本的なワークフロー
devブランチで作業
-
% git checkout dev
devブランチへ移動 -
% emacs something.txt
ファイル更新 -
% git add .
ファイルをgitへ登録 -
% git commit -m
コミット
prodブランチへ切替
-
% git checkout prod
prodブランチへ切替 -
% git merge dev
devブランチの内容をprodブランチへマージ - コンフリクトしたらがんばって直す
-
% git commit -m
本番用のコミット -
% git push heroku prod:master
リモートリポジトリherokuのmasterブランチへ、ローカルのprdoブランチをpush
devブランチへ戻しておく
-
% git checkout dev
間違ってprodで開発しないよう、忘れずにdevブランチへ戻しておく。例えばリモートpushとブランチ変更を同時に行っておくと忘れづらくて良い。git
% git push heroku prod:master && git checkout dev
```
環境情報
git
% git --version
git version 1.8.4.4
heroku
% heroku --version
heroku-toolbelt/3.10.6 (x86_64-linux) ruby/2.1.2
inxi
% inxi -SM
System: Host: hakuba.vps.sakura.ne.jp Kernel: 2.6.32-279.11.1.el6.x86_64 x86_64 (64 bit)
Console: tty 4 Distro: CentOS release 6.5 (Final)
Machine: System: Red Hat product: KVM v: RHEL 6.2.0 PC
Mobo: N/A model: N/A Bios: Sea v: 0.5.1 date: 01/01/2007