2012-02-02 4 views
2

가능한 복제를 밀어 후 살고 : 보기 웹 사이트는 망할 놈의


Git Post-Receive Hook for Website Staging

는 오늘 힘내을 배우기 시작하고 나는 한 가지에 붙어있어.

로컬 프로덕션 저장소를 원격 준비 저장소로 푸시하면 즉시 새로 푸시 된 파일을 볼 수 있습니다. 원격 저장소 (FTP 클라이언트를 통해)에서 내 파일을 찾으려고 할 때 찾을 수 없습니다.

이것을 달성하기 위해 고급 Git 마법을 수행해야합니까? 이 상황에 가장 적합한 방법은 무엇입니까?

다시 한번 말하지만, 저는 Git을 처음 접했고 아직 개념을 완전히 이해하지 못했습니다. 리모트 저장소로 Webfaction Git application을 사용했을 가능성이 있습니다.

편집 : 나는 this topic을 보았고 포스트 커밋 훅을 만드는 법을 알고 있지만 셸 스크립트에 무엇을 넣을지 전혀 모른다.

답변

2

먼저, 포스트 커밋 훅을 사용하고 싶지 않습니다. 클라이언트 측 훅입니다. 원하는 서버 측 훅은 지점 수신 여부에 따라 수신 후 또는 업데이트 중 하나입니다.

은 참조 : 후크 스크립트에서 https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

, 당신은 서버의 문서 루트에 chdir와와 자식 풀을 실행해야합니다. 또한 스크립트의 맨 위에는

unset GIT_DIR 

을 포함해야합니다. 그렇지 않으면 당기려 할 때 git가 혼란스러워 할 수 있습니다. ...

#!/bin/bash 

cd /your/git/repository/directory 
git checkout -f 

몇 노트 :

1

당신이 후 커밋 후받을 업데이트 후크 이런 식으로 뭔가를 시도, BASH있는 컴퓨터 또는를 만들 가정

  • 무슨 일이 일어나고 있는지에 대한 약간의 정보. git은 원격 저장소로 이동할 때 자동으로 새 코드를 체크 아웃하지 않습니다. 따라서 포스트 커밋 후크는 브랜치의 최신 코드를 체크 아웃해야한다.
  • 체크 아웃 된 지점으로 푸시 할 수 있도록 서버의 git 저장소에 알려야 할 수도 있습니다.

    git config receive.denycurrentbranch false 
    
: 해당 서버에서 자식의 repo에서이 명령을 실행하면 트릭을 할해야