2014-10-17 4 views
0

나는 웹 사이트에서 작업 중이며 버전 관리 (Git)를 사용하고 있으며 몇 가지 지사 ("마스터"와 "개발 중")를 가지고 있습니다. 그래서 저는 자주 "개발"하고 Bitbucket으로 밀어 넣으려고합니다.커밋/푸시시 Git 배포 서버에

개발 웹 서버가 FTP를 통해 수동으로 업로드하는 대신 "개발"분기의 최신 버전을 항상 가지고 있기를 바랍니다.

나는이 웹 서버, Windows 2008 R2에 대한 모든 권한을 가지고 있지만 (필요한 경우 Linux를 사용할 수 있음) 필요한 항목을 설치할 수 있습니다.

방법에 대한 아이디어가 있으십니까?

나는 Git에 상당히 익숙하다. 그래서 내가하고 싶은 일이 단지 평범한 것이라면 말하기 바란다.

답변

2

원격 저장소 저장소의 수신 후크를 사용하여 개발 분기에 대한 커밋을 잡아 분기를 배포 (또는 원하는대로) 할 수 있습니다.

푸시를 할 때마다 수신 후 후크가 원격에서 실행됩니다. 기본적으로 개발 브랜치에 푸시가 생성되었는지 여부를 감지해야합니다. 개발 브랜치가 전개 디렉토리에 체크 아웃 된 경우입니다.

내 - 수신은 이후이 같은 같습니다 설정할 때

DEPLOYDIR=/directory/you/want/to/deploy/to 
BRANCH=develop 
while read oldrev newrev ref; do 
    if [[ $ref =~ .*/$BRANCH$ ]]; then 
    echo "Ref $ref received. Deploying branch to $DEPLOYDIR" 
    cd $DEPLOYDIR 
    git fetch origin 
    git reset --hard origin/$BRANCH 
    fi 
done 

이 글은 매우 유용하다고 내 포스트가 나타납니다 응답에 대한 http://gitolite.com/deploy.html

+0

감사합니다, 나는이 도움이 될 수 생각하지만 하나 내가 얻지 못하는 것은, 이것이 수신 후크라는 것을 어떻게 알 수 있습니까? 위의 코드에서 이것을 명시하는 것을 볼 수 없습니까? – FireLeopard

+0

"수신 후"훅 스크립트는 원격 서버에 대한 푸시가 시작될 때 git에서 자동으로 실행되는 사용자 정의 스크립트의 이름입니다. 이 기능은 git 자체에 내장되어 있습니다. 다음은 조금 더 잘 설명하는 링크입니다. http://git-scm.com/book/en/Customizing-Git-Git-Hooks –

+0

그래, 어쩌면 다시 말해야 해. Git은 post-receive에 대해서만 스크립트를 실행하는 것을 어떻게 알 수 있습니까? 힘내 문서에서 내가 볼 수있는 것은 hooks 디렉토리에 적절히 이름 붙여진 파일을 두는 것입니다. – FireLeopard