2010-06-29 2 views
3

저는 열렬한 git 사용자입니다. 나는 개발에 자식을 사용한다. 준비 단계에 있지만 생산 단계에는 포함되지 않습니다.웹 루트 아래의 제품에서 사용하기

프로덕션 환경에서 웹 루트 (/ var/www /) 아래에 자식을 사용하지 않는 것이 좋은 이유가 있습니까? 필자는 master 브랜치를 프로덕션 브랜치로 사용하거나 프로덕션 브랜치를 만드는 방법을 고려해 왔습니다. 생산 마스터가 너무 좋은 소리

푸시 ...

답변

4

너무 좋은 ... 어떻게 든 아직 그렇게 잘못.

  • 액세스 보안 (복사 어떻게/배포 배달)
  • 새 버전을 배포 앱이
  • 의 오른쪽 프로세스를 중지 :

    생산 환경에서는 우려 할 필요가

  • (오른쪽 순) 오른쪽 프로세스
  • 모니터링
  • 01은보고를 시작

버전 제어는 그림의 일부가 아닙니다. 프로덕션 환경에 설치하려는 추가 도구는 잠재적 인 오류 지점이므로 자체 관리 및 모니터링이 필요합니다.
배포하는 응용 프로그램과 직접 연결되어 있지 않으면 ("추가 도구 없이는 응용 프로그램이 작동하지 않음"과 같은 "직접 연결"), 프로덕션 플랫폼에 있어서는 안됩니다.

master 분기의 git archive을 멋진 tar 아카이브로 만들고 "version.txt"를 사용하여 아카이브가 완료된 repo/SHA1을 식별하고 프로덕션 플랫폼으로 sftp/srsynch하십시오.
더 이상 자식이 필요하지 않습니다.

2

명백한 미적 이유 외에도/var/www에 저장소가있을 때 사용 권한이 종종 문제가 될 수 있습니다.

내 프로덕션 서버에서 브랜치 production의 개인 디렉토리와/var/www에 분리 된 작업 트리가 있습니다 (core.worktree 설정 참조). 또한 git checkout -f을 실행하기위한 후속 수신 후크가 있으므로 내 로컬 컴퓨터에서 수행해야하는 작업은 모두 production 분기로 푸시되며 나머지는 자동으로 처리됩니다.

2

git을 프로덕션 환경에서 사용하려면 웹 서버에서 .git에 액세스 할 수 없도록해야합니다. 웹 루트 외부에 .git를 배치하고 GIT_DIR 환경 변수를 설정하거나 이에 따라 웹 서버를 구성하여이 작업을 수행 할 수 있습니다.

가 다시 쓰기 엔진이 느린 경향이
RewriteRule ^(.*/)?\.git/ - [F,L] 
+0

에 대해 방법 : 이 <. 디렉토리/websrv/*/자식> 주문이 거부 을 허용 아파치에서

하나의 가능성은 다음 다시 쓰기 규칙 것 Denky from all – Marcin

관련 문제