Job is Tech

エンジニア・デザイナー向けの、お役立ちWEBマガジン

Gitを導入してWEBサーバーにファイルを同期

始めに

 

Gitを使ってみてバージョン管理やローカルにファイルを落としたりすることは簡単にできたのですが普通にpushしただけじゃ”objects”に入るだけでテストサーバーでの動作確認ができない。かといって普通にFTPでアップロードしていたらGit使うのを諦めてしまいそうなので色々調べてみました。

 

 

環境

 

サーバー側

・CentOS 6.3

クライアント側

・Mac + SourceTree

 

Gitを公開するまで

 

イメージとしてはGit管理とWEB公開用のフォルダを2つ作り連携させるといった流れになります。

■ Git管理側の設定(1/2)

まずはGit管理用のフォルダと公開設定を行います。

 #作業フォルダは/var/www/
mkdir ./public.git
cd ./public.git
git init --bare --shared

■WEB公開フォルダとの連携

WEB公開する用のフォルダを指定し、Git管理側からPushされた内容を同期します。

cd /var/www/
git clone /var/www/public.git

 

※cloneを実行するとpublic(gitフォルダ名)が自動的に作成されます。

 

■ Git管理側の設定(1/2)

現状のままではクライアント側からpushした時にWEB公開フォルダに自動的にアップデートされないので

管理側の「post-receive」を使い、pushされた時に先ほどのWEB公開フォルダへ自動で同期するように設定を行います。

cd /var/www/public.git/hooks
cp post-receive.sample post-receive
vi post-receive

post-receiveの中身

cd /var/www/public;
git --git-dir=.git pull

 

 

これでsourceTreeなどからpushした際にサーバー側で同じ構成で表示できるようになりました。

アップロードも意外と速いですし、これで最低限のGitは使えるようになるかな。

 

以上、jobis運営からでした。