2010-12-08 6 views
0

원격 저장소 (repoSlow)에 대한 네트워크 연결이 매우 느립니다.이 링크를 통해 주 개발 리포 (repo1)로 가져옵니다.2 차 원격에서 자식 패치 가져 오기

때로는 다른 디렉토리에서 repo1에 repo1을 복제하여 테스트를 수행합니다. 다른 브랜치에서는 repo1의 상태를 잃지 않고 (또한 오브젝트 파일과 라이브러리에 관한 것이므로 간단한 은닉은 그것을하지 않을 것이다).

repo2 로의 repoSlow 상태를 얻으려면 일반적으로 repo1에 숨겨두고 체크 아웃하고 repo1에서 repo1까지 모든 분기를 병합 한 다음 repo2로 가져와야합니다.

난이도가 높고 다른 점도 있지만, 때로는 repo1에서 병합하고 싶지 않습니다. 다른 로컬 브랜치 이름을 체크 아웃하면 큰 명명 난장이가됩니다.

실제로 리모컨의 리모컨을 가져 오는 쉽고 직접적인 방법이 있습니까?

더 나은 워크 플로우는 맨 처음 (또는 미러링 된?) 로컬 repo에 복제를 복제하고 그 중 하나를 여러 번 복제하는 것일 수도 있지만 더 나은 이해를 위해 원래의 질문을 유지합니다.

답변

0

맞습니다. 통합 지점으로 로컬에 맨 왼쪽 저장소에 복제 한 다음 repo1 및 repo2를 복제하는 것이 가장 좋습니다.

그러나 원래 질문에 대답하기 위해 리모컨을 직접 가져 오는 방법이 있다고 생각하지 않습니다. repo1에서 복제 한 후 repo2에 원격으로 repoSlow를 추가 할 수 있습니다. 그렇게하면 repo1에서 복제하지 않은 것을 repoSlow에서 가져와야합니다. repo1은 전체 기록을 유지하는 것보다 상당히 빠릅니다. 당신이 repo2에 두 개의 리모컨이 있어야합니다

이제
git remote add upstream git://example.com/path/to/repo/slow.git 
git remote update 

;

하면이 작업을 수행하려면, 단지 repo2 내에서 다음을 실행 origin repo1을 참조하고 upstream (또는 원하는대로) repoSlow를 가리 킵니다.

당신은 repo2이 같은 설정을 할 수 있습니다
0

:이뿐만 아니라 repo1의 가지를 가져 오기 (그리고 origin/*로 미러링) 기원의 repo1의 추적 브랜치를 가져도 이에 repo2을 알려줍니다

[remote "origin"] 
     fetch = +refs/heads/*:refs/remotes/origin/* 
     fetch = +refs/remotes/origin/*:refs/remotes/ancestor/* 

(미러 그들 ancestor/*)

이제 repo1에서 "git fetch"를 수행하여 repoSlow에서 변경 사항을 가져오고 로컬 분기를 전혀 변경하지 않고 repo2로 그 변경 사항을 가져올 수 있습니다.

관련 문제