さくらVPSにリモートリポジトリ置いてローカルからGitでPushして本番に自動反映

ローカルで修正したファイルをさくらVPSの本番環境へ反映するという運用を、Gitで行いたい。

プロジェクトをGitで管理する方法は以下を。

ローカルのFuelPHPのプロジェクトを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

これでローカルからリモートリポジトリへプッシュした際に、本番まで一気に反映してくれる。

参考

さくらVPSにGitの中央リポジトリを置く(for Mac) – Qiita

git hookでサイトを更新、やってみた – Qiita

Gitチュートリアルとトレーニング| Atlassian

コメント

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