何番煎じかわからないけれど…
すぐ試せるように手順だけ書きます。
概要
- bareRepo.git
- 中央リポジトリ
 - 差分情報だけ、ファイルはない
 
 - publishedRepo
- デプロイ先ディレクトリ
 - 直接さわらない
 
 - localRepo
- 作業用ディレクトリ
 - ここで作業して中央リポジトリにプッシュする
 
 
手順
$ mkdir ~/testdir
$ cd ~/testdir
$ git init --bare --shared bareRepo.git
$ touch bareRepo.git/hooks/post-receive
$ chmod +x bareRepo.git/hooks/post-receive
$ vim bareRepo.git/hooks/post-receive
以下の内容を記述します。
bareRepo.git/hooks/post-receive
# !/usr/bin/env bash
cd ~/testdir/publishedRepo
git --git-dir=.git pull
$ git clone bareRepo.git publishedRepo
$ git clone bareRepo.git localRepo
$ cd localRepo
$ echo Hello, world! > README.md
$ git add README.md
$ git commit -m "Initial commit"
$ git push origin master
$ cd ../publishedRepo
$ cat README.md
publishedRepoでは直接作業していませんが、Hello, world!と表示されます。