2011-09-07 6 views
6

몇 가지 질문을 여기에서 보았습니다. 특히 이것은 one이지만 여전히 혼란 스럽습니다.다른 사람이 git으로 원격 브랜치를 체크 아웃하는 것에 대해 더 설명 할 수 있습니까?

서버가 SSH 터널을 통해 액세스하는 속도가 느린 업 링크로 설정되어 있습니다. 그것에 나는 리눅스 커널의 기밀 저장소 (kernel.org)를 복제했다. 내 집 컴퓨터에서 베어 리포지토리를 복제하고 태그를 체크 아웃하고 지점을 만들고 ('test'라고 말하면서) 해당 지점을 변경 한 다음 마지막으로 변경 내용을 내 서버의 맨 왼쪽 저장소로 보냈습니다.

이제 클라이언트 사이트에서 지점을 체크 아웃하려고합니다. 클라이언트 사이트에서 느린 업 링크를 피하기 위해 kernel.org에서 linux repo를 복제하고 'origin'을 SSH 터널을 통해 내 서버를 가리 키도록 변경했습니다. 나는 지점을 볼 수 있지만 그것을 체크 아웃 할 수 없습니다 : 실제로 의도

~/linux-3.0.y$ git version 
git version 1.7.0.4 
~/linux-3.0.y$ 
~/linux-3.0.y$ git status 
# On branch master 
nothing to commit (working directory clean) 
~/linux-3.0.y$ 
~/linux-3-0.y$ git remote show origin 
[email protected]'s password: 
* remote origin 
    Fetch URL: git+ssh://[email protected]:48884/home/git-user/linux-3.0.y 
    Push URL: git+ssh://[email protected]:48884/home/git-user/linux-3.0.y 
    HEAD branch: master 
    Remote branches: 
    test new (next fetch will store in remotes/origin) 
    master new (next fetch will store in remotes/origin) 
    Local ref configured for 'git push': 
    master pushes to master (up to date) 
~/linux-3.0.y$ 
~/linux-3.0.y$ git checkout -b test origin/test 
fatal: git checkout: updating paths is incompatible with switching branches. 
Did you intend to checkout 'origin/test' which can not be resolved as commit? 

내 고객의 사이트에서 집에서 만든 지점에서 작업 할 수 있도록했다. 이 지점을 체크 아웃하려면 어떻게해야합니까?

+1

'git fetch origin'을 아직 실행 했습니까? (그렇지 않다면,'origin/test'는 아직 생성되지 않았을 것입니다.) 질문에'git branch -a'의 결과를 포함 시키면 도움이 될 것입니다. 여러분의 로컬 브랜치와 원격 추적 브랜치를 보여줍니다 . –

답변

11

글쎄, 먼저 나뭇 가지를 가져 오지 않은 것으로 보입니다.

git remote show origin 대신 git branch -a을 사용하십시오.

테스트 분기가없는 경우 git fetch --all을 입력하십시오.

이제 원격 브랜치를 같은 이름의 로컬 브랜치로 체크 아웃하려면 git checkout BRANCH_NAME을 수행하면 자동으로 원점을 추적하도록 설정됩니다.

+1

더 명시 적으로, Git의 DWIMery없이 :'git checkout -b BRANCH --track origin/BRANCH' – knittl

+0

그건 나에게 의미가 있습니다 ... 나는 지금 다른 혼란을 통해 힘을 얻고 있습니다. – Jamie

관련 문제