変更をプッシュしてから、リモートをsshで接続して、git pullしてデプロイしていくのが
なんとも面倒だったので、hooksを使って自動化できました。
リモートのリポジトリ 例 a.gitとします。
これ、ファイルに見えて、ディレクトリです。
その下にいくかのディレクトリがあります。
そのひとつがhooksディレクトリ、
cd a.git/hooks
としてみると、すでにサンプルがあります。
ここに、
post-receive というスクリプトを作ります。
中身
#!/bin/bash
#このスクリプトがあるとこに、ログ
SCRIPT=$(readlink -f "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
echo "git pull started at $(date +%F_%T)" >> "$SCRIPTPATH/post-receive.log"
# git pull
cd /home/デプロイされる本体があるディレクトリ || exit
unset GIT_DIR
git pull origin master
echo "git pull finished at $(date +%F_%T)" >> "$SCRIPTPATH/post-receive.log"
別にログとらなくてもいいけど。
最初、うまく当たってなくて、動かなかったので、ログ取るようにしました。
あとは、このスクリプトに実行権限を与えるだけ
chmod +x post-receive
たったこれだけです。
ローカルからプッシュしたら、もう公開サーバーで反映しています。