2014-02-13 3 views
1

목표 : Git + SSH를 사용하여 다수의 독립 개발자가 코드를 프로덕션 웹 서버에 배포 할 수 있습니다. 이후 개발자가 서버에 개입하지 않아도됩니다. FTP를 실행하고 싶지 않고 쉘 계정에 SSH 액세스를 허용하고 gitolite를 제외하고 사용자 계정을 관리하고 싶지는 않습니다.Gitolite 코드 배포 시스템

면책 조항 : 저는 git를 처음 사용합니다.

힘내 및 gitolite는 웹 서버에 설치되어 있으며 SSH를 통해 잘 실행됩니다. Nginx docroot 디렉토리는/srv에 있습니다.

나는 원래 gitolite가 실제 파일을 포함하는 repos를 만들 것이라고 생각했고 git repos에서/srv 로의 심볼릭 링크를 만들 수 있었다.

아니요, gitolite는/home/git/저장소에 읽을 수있는 코드 (작업 디렉토리)가 포함되어 있지 않은 "베어"저장소를 저장하는 것으로 보입니다.

나는 "git pull git @ localhost : somerepo"(사용자 실행 명령에 적절한 키가있는 경우)와 같은 명령을 사용하여/home/git에서/srv로 로컬로 pull 을 복제 할 수 있음을 테스트했으며 "git pull/home/git/repositories/somerepo "(네트워킹 + SSH를 피하십시오).

코드 업데이트가 서버에 푸시 된 후 훅 (또는 해킹)이 업데이트 된 repos를/home/git에서/srv로 가져 와서 병합 한 다음 서버를 다시 시작한 것처럼 보입니다.

이 접근 방식은 제정신입니까? git/gitolite의 기본 기능이나 기능을 놓친 것입니까? 아니면 git 기반 솔루션이 있습니까? git이 작동하지 않는다면 rsync가 탐색 할 수있는 또 다른 가능성이 있습니다.

답변

0

Gitolite는 authorization layer이다. 아무것도 더, 아무것도 덜.

부터 VREFS (Virtuals refs)까지 Gitolite가 관리하는 베어 리포지토리에 업데이트 후크를 추가하여 해당 베어 레포를 체크 아웃 (및 배포) 할 수 있습니다.