2016-12-08 20 views
1

リモートGitリポジトリをブランチ名によって複数のWebサーバー(ステージングサーバーや運用サーバーなど)に展開することは可能ですか?たとえば、開発者AがコミットをリモートブランチSTAGINGにプッシュすると、コミットは対応するステージングWebサーバーに展開され、ブランチMASTERへのコミット(またはマージ)は運用サーバーに展開されます。Git経由で別のWebサーバーに展開する

これは良い/信頼性の高いワークフローを示していますか?そうでない場合、よりよいアプローチは何ですか?

Git workflow example

+0


先裸のレポをしてpost-receiveフックを持っているでしょうか? – nullpointer

答えて

1

はい、私はそれが

get the branch name、使用(私のprevious answer from 2012のように)前に行って見てきました:

branch=$(git rev-parse --symbolic --abbrev-ref $refname) 

が、あなたは右のサーバーにプッシュすることができます

if [ "master" == "$branch" ]; then 
    git push production 
    echo 'Changes pushed live.' 
    fi 

    if [ "staging" == "$branch" ]; then 
    git push staging 
    echo 'Changes pushed to staging.' 
    fi 

これは、2つのレモそれぞれがリモートの裸のレポを参照しています。あなたは、単一のサーバーにデプロイするために使用しているどのような方法

git --work-tree=/path/under/root/dir/site/ checkout -f $branch 
関連する問題