FuelPHP + Gitで幸せになれた。

概要

背景

FuelPHPをはじめるにあたり、ソースコードをGitで管理しようと思い立ち、敢行。
Gitについては、ちょっと調べては『どうせ一人で開発してるし不要かなー』と挫折するというヘタレ具合だったので少しまとめてみました。

環境
  • ローカル:mac
  • リモート:さくらVPS

※gitのバージョンは両方1.7.1です。

やりたいこと

FuelPHPで作成したVPS上のアプリケーションを

  • ローカル(mac)に同期
  • ローカル(mac)での更新内容を反映
  • FuelPHPのマニュアル、core、モジュールは『github上のFuelPHPプロジェクト(以下Official-PJ)』からもらう。



リポジトリ作成〜ローカルへコピー(clone)

リモートでの作業

FuelPHPでプロジェクトを作成

# oil create hogehoge  
# cd hogehoge


gitの設定&Official-PJで管理したいディレクトリを一旦削除

# rm -rf .git .gitmodules *.md docs fuel/core fuel/packages


リポジトリの作成

# git init 


Official-PJで管理したいディレクトリをサブモジュールとして登録

# git submodule add git://github.com/fuel/core.git fuel/core
# git submodule add git://github.com/fuel/oil.git fuel/packages/oil
# git submodule add git://github.com/fuel/auth.git fuel/packages/auth
# git submodule add git://github.com/fuel/parser.git fuel/packages/parser
# git submodule add git://github.com/fuel/orm.git fuel/packages/orm
# git submodule add git://github.com/fuel/email.git fuel/packages/email
# git submodule add git://github.com/fuel/docs.git docs

※これでFuelPHP関連のファイルはOfficial-PJで管理することができる。
 アップデートはgit submodule foreach 'git pull'で一撃。幸せ。

チェックアウト

# git submodule foreach 'git checkout 1.4/master'

※foreachでサブモジュール全てに対して''内のコマンドを実行してくれる。

ローカルリポジトリにコミット

# git add .
# git commit -m "first commit"


これでリモート上にリポジトリが作られました。


ローカルでの作業
# git clone --recursive root@49.212.164.105:~/hogehoge/

※--recursiveでサブモジュールごと引っ張ってこれました。

これでローカルにクローンが作成されました。


ローカルで編集〜リモートへアップ

ローカルでの作業

新たにapp.phpを作成し、インデックスへ追加

# cd fuel/app/classes/controller/
# vim app.php
# git add app.php


app.phpをコミット

# git commit -m "add app.php"


リモートへ反映

# git push origin master:master 

※構文:git push {送信先リポジトリ} {送信元ブランチ}:{送信先ブランチ}


これでリモートに反映される

参考

以下を参考にさせて頂きました。ありがとうございました!
http://d.hatena.ne.jp/Kenji_s/20111202/1322783183http://transitive.info/