2014-11-04 1 views
3

리모트 A의 * 마스터를 추적하는 * 마스터로 나의 로컬 레포를 가지고 있습니다. (원격 A의 * 마스터는 유일한 활성 분기입니다.)새로운 브랜치에 리모트 브랜치 가져 오기 (하나의 명령으로)

원격 B에는 이제 A/master에없는 추가 작업이있는 * prbranch가 있습니다. 내 로컬 저장소에는 A (및 푸시하기위한 용도로만 사용되는 개인 리모컨) 이외의 리모컨에 대한 참조가 없습니다.

a) 내 로컬 저장소에 B/prbranch를 가져오고 b) 동일한 이름의 새 로컬 분기를 만들고 자동으로 변경하려면 어떻게해야합니까?

git fetch B prbranch 정확하게 분기를 가져 오지만 FETCH_HEAD에 넣습니다. 수동으로 비슷한 이름의 분기를 만들어야합니다.

git pull B prbranch은 현재의 repo의 하위 폴더에 새로운 REPO하게 현재 로컬 브랜치

git clone --single-branch B prbranch에 병합하려고 물론 쓸모가 없다.

그래서 원격 지점을 가져 와서 한 명령에서 동일한 로컬 분기를 만들 수 있습니까? 확실히이 할 어렵지 않다 ...

는 (내 경험은 물론 제한됩니다, 그래서 대답은 간단하고 "소급 분명"될 것으로 기대한다.) 다음 명령은

+0

리모트 B를 새로운 리모콘으로 추가하기 위해'git remote add'를 사용하십시오. –

+0

왜 그럴까요? 한 번만이 임의의 분기를 가져오고 다시 원격을 사용하지 마십시오. – Dubslow

+1

oh - 그냥 가져 오기를 prBranch : prBranch로 변경하거나 나중에 FETCH_HEAD를 가리키는 분기를 수동으로 만듭니다. –

답변

1

가져오고 만듭니다 원격 추적 브랜치를 만들지 않고 로컬 지점 :

git fetch <urlB> refs/heads/prbranch:refs/heads/prbranch 

문서에 Git Internals - The Refspec를 참조하십시오.

+0

그냥 prbranch : prbranch는 Andrew C가 지적한대로 작동했습니다. 나는 refspecs의 힘을 이해하지 못했고, 마지막 인자는 단순히 브랜치 이름 이상의 것이었다. :) – Dubslow

+0

''git fetch B branch : '를 할 수 있으면 좋겠다. 그리고 git에 로컬 브랜치에 대한 원격 이름을 사용해라. 이름뿐 아니라 ... 지금은 까다 롭습니다 :) – Dubslow

+0

Andrew가 지적한 것처럼, 최소한 필요한 것은 prbranch입니다 : 원격 지점에서 작업 지점으로의 prbranch. refspec은'.git/refs '아래에있는 모든 ref에 대해 작동 할 것이므로 때때로 혼동을 피하기 위해 철자를 쓰는 것이 좋습니다. –

관련 문제