2010-04-20 5 views
0

그래서, 힘내 다음과 같은 중앙 집중화 된 설정을 가지고 생각하고 (이들 각각은 클론은) :다중 레벨 클론 (Git 포함)?

stable 
    development 
    developer1 
    developer2 
    developer3 

그래서, 나는

git --bare init 

은 '개발'을 만들어 내 안정적인 저장소를 생성 복제

git clone ssh://host.name//path/to/stable/project.git development 

과는 '개발자'클론을 만든

그래서, 지금은, 변경을 커밋 한 다음 내 개발자 계정

git commit --all 
git push 

에서 밀어 변화는 개발 복제로 이동합니다.

하지만 지금은 서버로 ssh 할 때 개발 복제본 디렉토리로 이동하여 "git fetch"또는 "pull pull"을 실행하면 변경 사항이 표시되지 않습니다.

그럼 어떻게해야합니까? 나는 완전히 오해하고 일을 잘못하고 있습니까? 내 '개발자'클론에서 푸시 한 '개발'클론의 변경 사항을 어떻게 확인할 수 있습니까? 이것은 Mercurial에서 잘 작동했습니다.

답변

4

나는 Git와 Mercurial 사이에서 혼동스러운 용어 및/또는 방법론이라고 생각합니다. 내 생각에 당신이 찾고있는 것은 팀을위한 표준 분기 작업 흐름 일뿐입니다. 하나의 저장소, 묵시적인 계층을 가진 여러 가지 분기.

이는 데 도움이 될 것입니다

는 기억, 모든이에 포함되어 있습니다 하나의 저장소이지만 다른 버전의 같은 코드. 훌륭한 분기 및 병합 프랙티스를 적용하면 개별, 메인 라인 개발 및 메인 라인 안정 지점을 쉽게 유지 관리 할 수 ​​있습니다. 이렇게하면 미래를 위해 개발하면서 이전 버전을 유지 관리하기가 더 쉬워집니다.


A는 마지막 링크의 후속으로는 gitflow 봐, 그의 제안 모델에 쉽게 API를 제공하는 자식 확장을 할 수 있습니다.


마지막으로 귀하가 처음 게시 할 때 제기 한 문제를 해결하기 위해 여러 복제본이 똑같은 정보를 다른 이름의 디렉토리에 제공합니다. 각 개발자는 저장소의 복사본을 복제하고 개발 분기에서 커밋 한 다음 병합하여 중앙에서 호스팅되는 저장소로 변경 내용을 밀어 넣어야합니다. 그런 다음 준비가되면 한 개발자에게 개발 지점을 안정적인 위치로 병합시키고 중앙 호스팅 저장소로 밀어 넣으십시오.

변경 사항이 반영되지 않는 이유는 맨 저장소가 아닌 서버에 저장소의 전체 복제본이있을 가능성이 있기 때문입니다. 베어 리포 지 토리 (bare repository)는 소스 파일을 표시하지 않고 git 내부 만 표시합니다. 이 디렉터리에서 자식 작업을해서는 안됩니다. 모든 작업은 복제 된 버전에서 수행해야합니다.

이 모든 것은 아마도 git에 익숙하지 않고 다른 사례가있는 다른 DVCS에서 전환하는 사람에게는 매우 미묘하게 복잡해 보입니다. 초기에 GitHub과 같은 무료 호스팅 서비스를 사용하는 것이 좋습니다. git와 GitHub 사용에 도움이되는 다양한 guides on GitHub이 있으며 멋진 웹 UI를 얻을 수 있습니다.

+0

자습서가 도움이되었고, 나는 주변에서 놀았고 내가하고 싶은 것을 알아 냈습니다. 중앙 저장소를 사용하고 '개발'및 '개발자'를위한 복제본을 만들고 레일스와 같은 배포를 수행하여 (출시하고 싶을 때 안정을 유지하기보다는) 공개합니다. –

관련 문제