ローカルのFuelPHPのプロジェクトをGit管理する

ローカルのFuelPHPプロジェクトをGit管理にする。

最終的なゴールは、ローカル(Mac)で開発してるFuelPHPプロジェクトをGitで管理し、リモート(さくらVPSとGithub)へプッシュできるようにしたい。

前提
・今までローカルで開発してVPSへrsyncしていたのを、Gitでしたい
・ローカルに既存のプロジェクトがある
・VPSに既存のプロジェクトが動いている
・今まではGitは使っていなかった

1. FuelPHPをGit管理

FuelPHPというフレームワークは、それ自体がGitで管理されている(正確にはコアクラスが)。

なので、プロジェクトディレクトリのルートに.gitファイルが既に存在している。

自分のプロジェクトをGitで管理する場合、このファイルを削除し、FuelPHPのGitを初期化してやる。

既存のGit関連ファイル、コアモジュールを消す。

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

Gitのローカルリポジトリを作成する。

git init

Gitの初期設定をしておく。

git config –global user.email “[email protected]” git config –global user.name “Your Name”

続いてFuelPHPのGitの設定を行う。
FuelPHPのルートディレクトリに移動。

FuelPHPプロジェクトをGitで管理する場合、コアクラスはGitサブモジュールとして管理する。
Gitサブモジュールについては、こちらのサイトがわかりやすく、こちらのサイトが詳しい。

コアクラスは、Githubで公開されているFuelPHPオフィシャルのものを参照するようにする。

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

最新版をチェックアウトする。

git submodule foreach ‘git checkout 1.7/master’

コアクラスのアップデートは下記のコマンドで。

git submodule foreach ‘git pull’

いかが表示された。現在は全て最新版らしい。

Entering 'fuel/core'
Already up-to-date.
Entering 'fuel/packages/auth'
Already up-to-date.
Entering 'fuel/packages/email'
Already up-to-date.
Entering 'fuel/packages/oil'
Already up-to-date.
Entering 'fuel/packages/orm'
Already up-to-date.
Entering 'fuel/packages/parser'
Already up-to-date.

 

色々確認してみよう。

git branch

何も出なかった。
ローカルリポジトリにコミット。

git add . git commit -m “initial commit”

これでbranchができた。

git branch

* master

 

とりあえずローカルのFuelPHPプロジェクトをGit管理できた。
できた?

2. git submodule addできなかった

git submodule addできなかった。

git submodule add git://github.com/fuel/core.git fuel/core

The following paths are ignored by one of your .gitignore files:
fuel/core
Use -f if you really want to add them.
fatal: no files added
Failed to add submodule 'fuel/core'

 

-fオプションをつけてやるようにとのこと。
.gitignoreのせいでgit submodule addがダメだった?

-fオプションについて確認してみる。

man git-submodulecd

-f, --force
 This option is only valid for add, deinit and update commands. When
 running add, allow adding an otherwise ignored submodule path. When
 running deinit the submodule work trees will be removed even if
 they contain local changes. When running update, throw away local
 changes in submodules when switching to a different commit; and
 always run a checkout operation in the submodule, even if the
 commit listed in the index of the containing repository matches the
 commit checked out in the submodule.

 

ちなみに、-fオプションだがgit1.7系にはなかった。
ので、新しくGit2.3系をインストールした。

参考

FuelPHPのプロジェクトをGithubでバージョン管理する – sometimes I laugh

FuelPHP + Gitで幸せになれた。 – 個人的チラ裏

コメント

タイトルとURLをコピーしました