아이디어는 --work-tree=/path/
옵션을 사용하여 특정 작업 디렉토리에 체크 아웃을 얻을 수있는 서버에 post-receive hook
를 사용하여 특정 디렉토리
에 강제 (-f
옵션) 체크 아웃을 설정하는 것입니다 .. .
는
this Gist로 구성된 (실행 비트 세트를 가진 파일로 hooks/post-receive
서버 베어 REPOS에 저장하기 위해) 샘플 코드가 될 수있다 :
#!/bin/bash
echo '--- --- --- --- --- --- --- --- --- --- ---'
echo 'Deploying site...'
echo '--- --- --- --- --- --- --- --- --- --- ---'
if ! [ -t 0 ]; then
read -a ref
fi
IFS='/' read -ra REF <<< "${ref[2]}"
branch="${REF[2]}"
# Master Branch
if [ "PROD" == "$branch" ]; then
git --work-tree=/path/to/public/PROD checkout -f $branch
echo 'Changes pushed to production site'
fi
# Stage Branch
if [ "STAGE" == "$branch" ]; then
git --work-tree=/path/to/public/STAGE checkout -f $branch
echo 'Changes pushed to stage site'
fi
# Development Branch
if [ "DEV" == "$branch" ]; then
git --work-tree=/path/to/public/DEV checkout -f $branch
echo 'Changes pushed to dev site'
fi
echo '--- --- --- --- --- --- --- --- --- --- ---'
,617,
체크 아웃을위한 또 다른 가능한 sintax는
GIT_WORK_TREE=/path/to/test/site git checkout -f
매우 일반적인 설정입니다. 귀하의 질문은 무엇인가? –
음, 그 해결책을 아직 알지 못했고 그것이 내가 묻는 이유입니다. 카를로가 나에게 멋진 해결책을 제공 했어! –