3

ベア git リポジトリを作成したリモート サーバーがあります。

特定のブランチで受け取った最新のコードで特定のスクリプトが実行されるように、フックを作成したいと思います。

post-receiveフックが使えることはわかっています。ただし、次のことを行いたいです。

  1. コードを受信したブランチを取得します。
  2. 一時的な場所でコードをチェックアウトし、操作を実行します。

上記を行うにはどうすればよいですか?

4

1 に答える 1

9

「 Git post-receive for multiple remote branchs and work-tree」で組み合わせた両方の手法を参照してください。

#!/bin/bash

while read oldrev newrev ref
do
  branch=`echo $ref | cut -d/ -f3`

  if [ "master" == "$branch" ]; then
    git --work-tree=/path/under/root/dir/live-site/ checkout -f $branch
    echo 'Changes pushed live.'
  fi

  if [ "dev" == "$branch" ]; then
    git --work-tree=/path/under/root/dir/dev-site/ checkout -f $branch
    echo 'Changes pushed to dev.'
  fi
done
于 2012-07-04T05:41:01.833 に答える