7

Git の post-hooks 戦略を使用してサーバーにコードをデプロイするために、この優れた記事http://toroid.org/ams/git-website-howtoに従いました。

次のような更新後のファイルがあります

GIT_WORK_TREE=/home/rajat/webapps/<project name> git checkout -f

コードをmasterブランチにプッシュするたびに、自動デプロイされます。私が今やりたいことは、これが複数のブランチをサポートするようにすることです。

  1. git push origin master -----> コードを本番環境 (/home/rajat/webapps/production) にデプロイします
  2. git push origin staging ----> コードをステージングにデプロイします (/home/rajat/webapps/staging)
  3. git push origin test ----> テストするコードをデプロイします (/home/rajat/webapps/test)

このために、post-updateフックは、どのブランチが更新されたかを理解する必要があります。これは可能ですか?

4

2 に答える 2

4

ブランチ名を検出する更新後のフックを作成することができます。
インスピレーションを得るために参照してください。

例として (これらのフックはすべて に基づいていますgit rev-parse):

#!/bin/bash
while read oldrev newrev refname
do
    branch=$(git rev-parse --symbolic --abbrev-ref $refname)
    if [ "master" == "$branch" ]; then
        # Do something
    fi
done
于 2013-09-14T18:03:06.550 に答える