更改目录后的post-receive hook

时间:2014-04-07 15:33:26

标签: git laravel-4

更改目录,运行某些命令,然后从git运行checkout的正确方法是什么。

基本上,我的流程是这样的:

  1. 切换目录
  2. 将应用程序置于维护模式
  3. 运行结帐
  4. 出口
  5. 我陷入困境3.基本上,如果我尝试结帐,我会得到"而不是git存储库"错误。我理解为什么。我很好奇是否有更好的方法从正确的位置运行checkout命令而不进行其他目录更改。

    这是我现在所拥有的

    #!/bin/bash
    while read oldrev newrev refname
    do
        branch=$(git rev-parse --symbolic --abbrev-ref $refname)
        case $branch in
        "testing")
            echo "testing branch"
            DEPLOYDIR=../testing_html
            cd $DEPLOYDIR
            php artisan down
            #php artisan migrate:rollback --env=srv-testing
            GIT_WORK_TREE="$DEPLOYDIR" git checkout -f
            #php artisan migrate --seed --env=srv-testing
            #php artisan up
            #echo "Deployment to testing environment complete"
            ;;
        *)echo "doing nothing";;
        esac
    done
    

1 个答案:

答案 0 :(得分:0)

你应该插入:

export GIT_DIR=$PWD

在第一个cd之前,DEPLOYDIR不应该是相对路径。使用:

DEPLOYDIR=$PWD/../testing_html