2

リポジトリの開発バージョンと本番バージョンを、サイトの各バージョンが実行されている開発ディレクトリと本番ディレクトリにコピーするように、仮想サーバーに次の受信後フックを作成しました。

以下は私が書いた受信後のフックです。プッシュされたブランチに応じて、どちらか一方だけを条件付きで更新するにはどうすればよいですか?

#!/bin/sh

if [ -n $GIT_DIR ]; then
    unset GIT_DIR
    cd ..
fi

echo "Deploying to dev"
git checkout develop
umask 002 && git reset --hard
cp -r /path/to/git/files/* /path/to/dev/site/

echo "Deploying to prod"
git checkout master
umask 002 && git reset --hard
cp -r /path/to/git/files/* /path/to/prod/site/
4

2 に答える 2

1

受信後のフックは、標準の入力3つの変数(古いリビジョン、新しいリビジョン、参照名)を受け取ります。これは、まさに必要なものです。次の方法でスクリプトを改善できます。

read oldrev newrev refname

そして、refnameに含まれるものに応じていくつかのifを実行します(つまり、refs / heads / master)。

于 2012-06-09T23:35:21.633 に答える
0

更新されたブランチをループして、開発サイトへの更新と本番サイトへの更新をデプロイしdevelopますmasterか?これを試してください:http://blog.ekynoxe.com/2011/10/22/git-post-receive-for-multiple-remote-branches-and-work-trees/

于 2012-06-10T00:43:11.930 に答える