2013-04-10 2 views
2

많은 프로젝트에서 일하고 여분의 베어 리포 지 토리없이 몇 대의 컴퓨터에서 git-tfs를 사용하고 싶습니다.베어 리포지토리가없는 Git tfs

내 아이디어는 공유에 git-tfs 저장소를 저장하고 모두 작업 분기로 푸시하는 것입니다. 변경 사항을 마스터에 병합하고 tfs로 푸시합니다.

나는 이런 식으로 뭔가 할 수있는 기대했다

:는 "일을"TFS에서

복제를 만들 지점

git clone --branch work --single-branch path/to/centralrepository 

할 클라이언트 측 복제 작업 지점에

cd centralrepository 
git tfs quick-clone --shared http://tfs.. $/tfsfolder . 
git branch work 

에게 클라이언트 측에서 작업하고 커밋하여 중앙에 푸시 함

중앙에

다시, TFS에서 업데이트를 '작업'에 변경 사항을 적용하고 다시 클라이언트에서 지금 다시

git tfs pull 
git rebase master work 
git checkout master  // rebase checks out the work branch 
git merge work 
git tfs checkintool 

를 밀어 당겨 계속 작업

git pull 
... 
git push 

을하지만이되는 작동하지 않습니다 숙련 된 git 사용자에게는 아마도 명백 할 것입니다.

rebase는 변경 사항을 두 번 적용하기 때문에 충돌이 발생하는 중앙 및 클라이언트에서 변경 사항이 병합됩니다.

전체 아이디어에 결함이 있거나 일부 단계가 누락되었습니다.

답변

1

시나리오를 조금 더 생각하면서 오류를 발견했습니다.

work 분기는 물론 중앙 저장소에 리베이스되지 않아야합니다. workmaster과 병합 된 다음 빨리 전달되어야합니다.

그것은 다음과 같아야합니다

git tfs pull 
git merge work 
git checkout work 
git merge -ff-only master 
git checkout master 
git tfs checkintool