2011-01-06 4 views
4

원격 저장소에 연결할 때마다 업데이트하고 싶은 웹 사이트가 있습니다. 나는 svn 배경에서 오는 여전히 자식을 알아 내려고.Git : 원격 저장소로 이동할 때 웹 사이트를 업데이트 하시겠습니까?

  • 설정 웹 사이트를 포함하는 내 로컬 컴퓨터에 Git 저장소 :

    는 지금, 나는 다음과 같은 했어요.

  • (베어) 저장소를 웹 서버에 복제했습니다.

이제 저는 조금 붙어 있습니다. 변경된 내용을 서버의 내 저장소로 푸시 할 수는 있지만 www 디렉토리에있는 저장소의 작업 복사본을 체크 아웃하는 방법을 모르고 서버에 로컬 저장소를 푸시 할 때마다이를 자동으로 업데이트합니다. 아마도 후크 스크립트가 필요할 것입니다.

관련 질문 Deploy PHP using Git, 부분적으로 내 질문에 대답하지만 스크립트가 실제로 무엇을하는지 알고 싶습니다.

이것은 나를 위해 일한
+0

당신은 왜 어떠하지 않느냐? 서버에 노출 된 저장소 대신 일반적인 저장소를 유지 하시겠습니까? 그리고 직접 푸시/서브 하시겠습니까? – Dogbert

+0

@Adam : 처음에는 시도했지만 다음 (git push 웹 서버)을 푸시하려고하면 다음 오류가 발생합니다. remote : error : 기본적으로 non-bare 리포지토리의 현재 분기 업데이트가 거부되었습니다. 인덱스와 작업 트리가 일치하지 않게 만들 것입니다. –

답변

6

, 그것은 당신을 위해 일 수 있습니다 A web-focused Git workflow

+0

+1 깔끔한 해결책이지만 두 개의 리포지토리가 관련되어 있기 때문에 정보를 호스트에 두 번 저장해야한다고 말하면됩니다. 나는 이것이 단지 트레이드 오프라는 것을 알고있다. :) – ralphtheninja

3

내가 Caius Theory Website

에 나를 위해 매우 좋은 (우아한) 솔루션을 발견 그것은 기본적으로 베어 저장소 시작하여 변경 worktree를 웹 서버 폴더로 이동하십시오. 그런 다음 수신 후 후크를 사용하여 수신 할 때마다 작업 트리를 업데이트합니다. 우아하고 쉬운 절차를 따르십시오!

ln -s /home/caius/git/somesite.git/ /home/caius/vhosts/somesite.com/htdocs/.git 

내가 웹에서 다른 분기를 체크 아웃 할 수있는이 방법 : 나는 다시 자식 저장소 위치에 웹 사이트 위치에서 소프트 링크 된 ".git"디렉토리를 추가하는 문서의 설정에 추가

-server에 로그인하여 웹 사이트 폴더에서 "git checkout"을 사용하십시오!

here에서 Python-Script "ygit-push-all.py"를 약간 수정하여 다른 구성 파일을 사용하여 동일한 프레임 워크 코드를 실행하는 여러 대의 컴퓨터를 업데이트했습니다. Demo/Development와 같은 서버별로 지점을 설정할 수도 있습니다. 것이다

[alias] 
    push-all = !ygit-push-all.py 
    check-all = !sh -c 'git branch -r -v | grep master | awk \"{ print \\$1, \\$2 }\"' 

자식 푸시 - 모든모든 내 원격 위치

자식 체크 모든

업데이트됩니다 : 또한

나는 내 글로벌 자식 설정 파일에 다음 별칭을 추가 나에게 모든 원격 주인 지점이있는 rev를 보여라

관련 문제