ローカルで修正したファイルをさくらVPSの本番環境へ反映するという運用を、Gitで行いたい。
プロジェクトをGitで管理する方法は以下を。
さくらVPS上のFuelPHPサイトをgit cloneでローカルにもってきたときにやったこと
以下の運用でとりあえずやってみる。
さくらVPSにリモートリポジトリをたてて、そこへローカルからGitでプッシュ。
同じVPS内に公開用のローカルリポジトリがあるので、そこからプル。
Github使えよって話だけど、また次回。
1. さくらVPSにリモートリポジトリ作成
さくらVPS上での設定。
リモートリポジトリ用のディレクトリ作成し、移動しておく。
mkdir ~/git cd ~/git
Git管理しているプロジェクトのリポジトリからCloneする。
ベアリポジトリとして作るため、–bareをつける(下そのままコピーしてもハイフン一つしかないと認識されてる・・・)。
git clone –bare ~/www/it-review
するとgitディレクトリ内に「it-review.git」が作成される。
これがベアリポジトリ。
clone元のディレクトリへ移動。
cd ~/www/it-review
今作ったリモートリポジトリに対する新規接続を作成する。
git remote add origin ~/git/it-review.git
リモートリポジトリへの接続一覧を表示して確認。
git remote -v
以下のように表示された。
origin /home/runble1/git/it-review.git (fetch)
origin /home/runble1/git/it-review.git (push)
ローカル環境でも接続設定を行っておく。
git remote add origin service:~/git/it-review.git
準備完了。
2. ローカルからPushして本番へ反映
適当にローカル環境でファイルを修正しておく。
これを本番へ反映する場合の手順が以下。
ファイルをステージして、コミット対象に加える。
cd ~/work/it-review git add .
コミットする。
git commit -m “test”
リモートリポジトリへプッシュする。
git push origin master:master
ここままでで、リモートリポジトリへは反映されている。
だが、本番へは反映されていないため、本番でプルする。
cd ~/www/it-review git pull origin master:master
Gitのログを確認しておこう。
反映されているかな?
git log
3. リモートにプッシュしたら本番へも自動反映
Gitフックという、特定のアクションが実行された際に別のアクションを起こすという機能がある。
これを利用して、リモートリポジトリへプッシュされた際に、本番にも同時に反映するように設定する。
ベアリポジトリの方の設定ファイルを編集する。
vim ~/git/it-review.git/hooks/post-receive
以下を記述する。
2行目は反映先のこと。
#!/bin/sh cd /home/runble1/www/it-review git --git-dir=.git pull origin master
実行権限をつけておく。
chmod +x ~/git/it-review.git/hooks/post-receive
これでローカルからリモートリポジトリへプッシュした際に、本番まで一気に反映してくれる。
コメント