2011-04-29 6 views
4

나는 이것을 밖으로 던져 버릴 것이고 이것에 대한 충고를 할 수 있을지 알았습니다.VCS가없는 프로덕션 사이트를 Git으로 마이그레이션

나는 대규모의 코드베이스를 가진 제작 사이트를 가지고 있으며 테스트 사이트와 마찬가지로 Git을 설치했다. 기본적으로 통합 지점이되는 로컬 상자가 있습니다. 우리 팀은 로컬 박스에 밀어 넣을 것이고 작은 놈들이 와서 다른 서버에 모든 것을 가져다 줄 것입니다. 아니면 적어도 Git을 구현하는 데 가장 가까운 곳 이죠.

나는 실제로 조금이라도 가지고 있지 않다. 실마리를 어디에서 시작해야 하는가? 멋진 하루를 만나는 게 무서워서 크고 까다 롭고 오래된 코드베이스가 있습니다. 힘내는 커다란 정화 과정의 출발점이 될 뿐이며, 시작하는 방법을 모른다.

필자는 제작 용 docroot (적용 가능한 .gitignore 항목)를 기반으로 맨손으로 .git repo를 만든 다음 테스트 및 개발 환경으로 복제하면 개인이 개발 환경에서 복제되어 작업을 시작하게됩니다. dev로 변경 한 다음 맨 손으로 repo를 변경하면 docroot를 업데이트하도록 마술처럼 말합니다.

개발 과정에서 git-flow를 설치하고 (프로덕션 서버에서 작동하도록 만들 수 없음) 프로덕션 환경으로 푸시하려고했습니다. 그들은 하루의 끝에서 단지 지점이기 때문에 나는 prod/test 서버에서 git-flow를 사용하지 않고 빠져 나갈 수 있다고 생각했습니다.

이것은 모두 잘되고 좋은 것처럼 보입니다. 테스트/찌르다, 또는 dev/test/prod로 가져 가야하는지 잘 모르겠습니다. 어쩌면 프로덕션의 docroot에서 바로 똑바로 자식 init? .git 디렉토리를 만들고 git init을 사용 하시겠습니까? Giggid init giggidy giggigdy ...

통찰력을 환영합니다.

편집

는 여기에 내가 잘하면 다른 사람이 유용 발견 할 것이다,하고 결국거야.
YOURNAME.git을 만든 : 개발 서버 (LAMP) 초기 가져 오기를 .gitignore 파일을 설정하고 디렉토리 내 자식 초기화를 실행하고 peformed/전류 생산 코드가 준비/프로덕션 서버에서
을 커밋 다운로드

디렉토리와로 만든 베어 저장소 자식 초기화 --bare
설정 worktree /경로/AS에/내/public_html을 false로 맨손으로 설정하고,
무시 receive.denycurrentbranch 설정 자식 체크 아웃을 내 자식 사용자가 worktrees 위로 개발 서버에

에 쓸 수있는 권한이 있었다 것을 확인 -f :이 포스트/수신 후크 라인을 추가
자식 원격 추가를 [준비를 | 생산 ] SSH가 : //[email protected]/path/to/my.git
자식 푸시 [준비 | 생산] 마스터

내 생산 및 준비 사이트의 간단한 자식 푸시 [생산을 업데이트하려면 | 스테이징]와 나는 걱정할 필요가 없다. .git 디렉토리를 공개적으로 숨겨서.

출처 : http://www.deanoj.co.uk/programming/git/using-git-and-a-post-receive-hook-script-for-auto-deployment/
http://toroid.org/ams/git-website-howto

희망이 누군가를하는 데 도움이!

편집 다시
또한, 1.7.3.3 이상에서 가장 잘 작동합니다. 나는 개발을 위해 가상화 된 우분투 상자를 실행 중이며 Samba에 관한 몇 가지 문제에 부딪쳤다. 몇 시간 동안이 문제를 해결 한 후 1.7.3.3에서 문제가 해결 된 것을 읽으십시오. 나는 1.7.3.1에 있었다.

답변

1

Capistrano와 같은 무거운 배포 솔루션을 사용하는 데 관심이 없으면 운영중인 docroot의 최신 변경 사항을 확인하는 게시판 수신 후크를 설정할 수 있습니다. dev와 production 모두에 대해 별도의 후크를 설정할 수 있습니다. 이렇게하려면 pretty good guide이 있습니다.

+0

카피 스트라 노는 루비 전용입니다. 죄송합니다, 이것은 PHP 프로젝트임을 명시해야합니다. 지금 가이드를 들여다보기 시작했습니다. 건배! – James

+0

정말 도움이되는 가이드, 나는 그것을 이미 우연히 발견하지 못했다고는 믿을 수 없습니다. 이 가이드의 예제는 (인수를 위해) 로컬 코드 저장소로 시작합니다. 이것은 별거 아니에요, 난 그냥 지금 사이트를 곱슬하고 dev에 상자에 그것을 팝업 수 있습니다. 내가 가진 유일한 질문은 이것입니다 : website.git 디렉토리와 post-receive 훅이 시작될 때 체크 아웃 된 변경 사항이있는 docroot에있는 파일을 단순히 덮어 쓸 것인가? – James

+0

네, 그게 git checkout -f 명령이 담당하는 것 같아요. 무슨 일이 있어도 모든 것을 덮어 씁니다. –

관련 문제