ちなみに

火曜日の空は僕を押しつぶした。

フック(hook)を使ってコミットしたら自動的にデプロイするようにする

Gitさんはいくつかのタイミングで好きな処理をフックできる賢い子です。
$GIT_DIR/hooks配下にタイミングごとのスクリプトが用意されていて、それを書き換えることで任意の処理を行わせることが出来ます.
タイミングなどの詳しい説明はman githooksに書かれています。(最初にこれを見ていれば僕の数時間は失われなかったのに)


今回やりたかったのは、ローカルでWebサイトをこねくりまわして、気に入ったらコミットしてリモートにpush、そうすると自動的に公開用のディレクトリでpullするというものです。

やったことは、リモート側で

$ cat path/to/repos/hooks/post-receive
#!/bin/sh

(cd /path/to/site/directory; git --git-dir=.git pull)
$ chmod +x path/to/repos/hooks/post-receive

だけです。
これで普通にpushすると、サイトのファイルを置いているディレクトリでpullしてくれます。


フック用のスクリプトに実行権限を与えてなくてつまったので、忘れずにchmod +xしてあげてください。(それマニュアルに書いてるよ!)
あとは--git-dirを指定しないとGitさんにここはリポジトリじゃないと怒られるのでそこも注意です。


フックはもっとうまく使えばいろいろ出来ると思うので、ごにょごにょするのがお好きな人は、ごにょごにょしてその結果を教えてください。

# コミットする前にテストを走らせるとかも簡単!