2011-10-11 3 views
5

그래서 나는 내 작업 복사본에 대한 몇 가지 태그와 리모컨을 설정, 자식 저장소를 만든 다음어떻게하면 git 저장소를 복제하고 리모컨을 유지할 수 있습니까?

git push --mirror my.remote.repository 

기발한, 자식으로 추진하는 것도 밀어 버린다 --mirror 내 서버에 저장소를 밀어 나는 리모컨을 설치했다.

그러나, 나는

git clone my.remote.repository 

을한다면 나는 원래 만든 리모컨이 표시되지 않습니다. 리모컨을 복제하려면 특별한 구문이 필요합니까? 미러가 실제로 원격지를 보내지 않습니까? 나는 어디로 잘못 갔는가?

편집 : 아마도 내 워크 플로가 이상합니다. 다음은 내가 달성하고자하는 작업입니다. Repo는 처음에는 내가 제어하지 않는 다른 프로젝트 (A)의 복제본이며, 여기서 원격을 '업스트림'으로 바꿨습니다. 새로운 '마스터'지사를 만들었고 작업 복사본을 변경하고 배포하려고합니다. 원래 저장소 (A)에서 업데이트를 가져옵니다 (원래의 수정되지 않은 분기로 전환하고 업스트림에서 가져 오기). 그러나, 나는 다른 사람들과 함께 일하고 있는데, 누구나이 일을 할 수 있어야합니다. 목표는 초기 저장소 (A)의 버그 수정으로 마스터 분기를 업데이트하고 변경 사항을 '마스터'분기에 적용하는 것입니다. 따라서 개발자가 리포지토리를 복제 할 때 실제로 수행 할 수 있도록 업스트림 브랜치를 상속해야합니다. 요컨대, 나는 '업스트림'브랜치를 사용하여 다른 프로젝트에서 업데이트를 가져 오려고합니다. 'upstream'브랜치가 실제로 리파지토리에있는 파일의 95 %를 담당하고 있으며 전체 프로젝트가 업스트림의 파일 없이는 의미가 없기 때문에 서브 모듈을 사용하지 않았습니다.

+0

어쩌면 내가 누락되었지만,'upstream/master'에서 업데이트하고있는 지부 ('foo'라고 부름)가있는 것처럼 들릴 것입니다. 왜 다른 사람이 복제 할 수있는 맨손 저장소에 그 지점 ('마스터 '뿐만 아니라)을 밀어 넣지 않는가? 또는 저장소에 직접 복제하도록 할 수 있습니까? 두 경우 모두'--mirror'를 사용하지 않고 원격 지점을 분기하는 역할을합니다. –

+0

@ mark-longair 그렇습니다.하지만 원격 브랜치는 원래 원래 있던 업스트림 서버가 아닌 자체 서버를 추적합니다. 다소 유용하지만 다른 사람들이 업스트림 (읽기 전용)에서 업데이트를 가져 와서 자신의 서버 (원본)에 위임 할 수 없음을 의미합니다. – Zxaos

+0

그들은 그것을 할 수 있습니다 - 그들은 단지 다른 저장소를 참조하는 여분의 리모컨을 추가해야합니다. –

답변

2

(이것은 일반적인 워크 플로우 아니지만, 어쨌든 직접 질문에 대답하려고합니다 ...)

git push --mirror은 참으로 원격에서 같은 이름으로 원격 추적 브랜치를 밀어 것입니다. 그러나 복제 할 때는 기본적으로 refs/heads 아래의 참조 만 가져오고 원격 추적 분기는 refs/remotes/origin/ 아래에 매핑됩니다. git clone --mirror으로 복제하면 리모컨에서 원격 추적 분기를 얻을 수도 있지만 그 옵션은 --bare을 의미합니다.

브랜치가 원격에서 미러링 된 작업 트리가있는 리포지토리를 원한다면 config 옵션 remote.origin.fetch에서 refspec을 변경하여 모든 ref를 동일한 이름으로 가져올 수 있지만 다시 실제 문제가 매우 특이한 워크 플로우를 사용하고 있습니다.

덧붙여, 당신이 가져올 수있는 심판의 매핑을 변경하는 방법 중 하나를 사용하는 경우에도이 저장소의 자식 설정에 정의 된 리모트 자신을 복제하지 않습니다 - git clone은 복제하지 않습니다 .git/config에서 개인 정보가 포함 된 것으로 간주됩니다.

+0

이 워크 플로에 대한 정보를 추가하면이 질문을보다 의미있게 만들 수 있습니다. – Zxaos

+0

이렇게하면 이렇게 할 수 있습니다. 하지만이 워크 플로를 폐기하고 대신 하위 모듈을 사용하는 것으로 끝났습니다. – Zxaos

관련 문제