2012-04-10 2 views
2

단일 웹 서버에있는 많은 ColdFusion 프로젝트에서 작업합니다. 나는 최근에 다른 사람들에 의해 'shown the light'이되어 개발자 머신/테스트 머신/생산 기계 개발 방법론으로 옮기고 싶습니다.Git을 사용하여 멀티 태스킹하는 방법

내가 지금 (우리 기관에서 다른 사람이) 일을 '강요'하는 방식으로 처리하는 방법을 가장 화해하기 위해 노력하고있어

...

이의 우리의 웹 서버가이

같이 설정되어 있다고 가정 해 봅시다
-Root 
--Project 1 
--Project 2 
--Project 3 
--Framework Files 

중앙 git 저장소가 설정되었고 함께 작업중인 루트의 복제본이 있다고 가정 해 보겠습니다. 그룹의 다른 모든 개발자는 저장소의 자체 복제본을 가지고 있습니다.

월요일 아침에 프로젝트 1에서 작업을 시작했습니다. 예상되는 4 시간 기능 요청 중간에 있으며 8 명의 다른 상사 중 한 명이 와서 중요한 프로젝트 2에서 해결해야 할 문제. 월요일은 좋은 시작입니다.

프로젝트 2 STAT를 수정해야하지만 아직 프로젝트 1에 대한 기능 요청이 완료되지 않았습니다. 프로젝트 2에서 문제가 해결되면 테스트를 위해 로컬 저장소에 커밋하면 P1의 미완성 기능이 포함될 것입니다.

Joel Spolsky's Mercurial Init Architecture page에서 외삽하면 각 하위 프로젝트에 대한 저장소의 'dev'복제본을 만드는 방법이 있습니까? 그런 다음 커밋하려면 기본 로컬 리포지토리에 커밋 한 다음 기본 공유 리포지토리에 커밋하십시오.

Git에 내가 누락 된 또 다른 개념이 있습니까?

모두 감사합니다, 크리스

답변

7

나는 branching을보고 싶습니다.

분기를 사용하면 여러 가지 개발 스트림을 한 번에 유지할 수 있으며 그 사이를 쉽게 교환 할 수 있습니다. 또한 원격 저장소에 원격 분기를 만들 수 있으며 여러 팀 구성원이 동시에 이러한 저장소에서 작업 할 수 있습니다. 원하는만큼 길거나 수명이 짧을 수 있으며 Git은 많은 지사를 만들고 유지 관리하는 데 탁월합니다.

stashing은 나중에 다시 작업을 저장하기위한 스택 기반 메커니즘이기 때문에 stashing과는 다릅니다. 분산되어 있지 않고 스택을 통해 여러 워크 플로우를 관리하는 것이 어려울 것입니다.

Here's a useful page 분기 워크 플로에 대해 설명합니다.

+0

자식 흐름을 완전히 소화하기 위해 조금 시간이 걸릴 것입니다. 그러나 이것은 매우 유용합니다. –

4

당신은 당신이 나중에 다시 미완성 작업 "을 버리고"를 제공 할 수있는 stash 기능을 누락하고 있습니다. 이 기능을 사용하면 마지막 커밋 이후 파일을 수정했지만 커밋 준비가 불완전한 "더티 (dirty)"디렉토리를 사용하고 커밋하지 않고 변경 사항을 저장할 수 있습니다. 디렉토리는 마지막 커밋을 보았던 방식으로 되돌려지고 변경 사항은 git에 의해 저장됩니다. 다시 apply를 사용

$ git stash save "work in progress for foo feature" 

당신은 당신의 일을 복원 할 수 있습니다 :

$ git stash apply 

또 다른를 사용은 당신이 save를 사용하여 작업을 저장할 수 위의 링크에서 ... 아주 간단합니다 문제는 단일 프로젝트에 모든 프로젝트를 보유한다는 것입니다. 이는 최선의 방법은 아니지만 submodules을 사용하여 해결할 수 있습니다. 기본적으로 하나의 포괄적 인 리포지토리에 여러 개의 리포지토리가 있습니다. 위의 링크는 하위 모듈 사용 방법에 대한 훌륭한 자료이며 number of useful posts here on SO discussing how to use them이 있습니다.

관련 문제