2017-10-06 23 views
2

, 나는 master 지점 원격 REPO와 동기화 이미Git Branches가 Pull 또는 Fetch 후에 "git branch"에 표시되지 않지만 "git checkout"이 작동합니다 ...? 시스템 A에 내 로컬 자식의 repo에 새로운 지점 <code>branchname</code> 내 최신 일을 저지르고 후

$ git push origin branchname 

내 gitlab 원격의 repo에 그 일을 한 밀었다. 내 지트 랩 목록의 원격 저장소에 모든 지점이 나타났습니다.

는 나중에 내가 먼저

$ git pull origin master 

마스터가 업데이트 되었으나, 한 기계 B.에 갔다 내 내가 git branch를 입력,도 내가 존재 새로운 또 다른 지점을했을 때 표시하지 않았다 branchname 새로운 역사 나무. 나는이 post에 가서 첫 번째 대답의 지시를 따랐습니다. 또 다른 'git branch'는 여전히 내 다른 지점을 보여주지 않았습니다. 변덕 스러울 정도로 간단히 시도했습니다.

$ git checkout branchname 

거기에 있었으므로 괜찮 았습니다. git branch 명령은 내 브랜치 목록에서 master와 branchname을 보여줍니다. 다른 지점에서 같은 일을했는데 git branch 명령 다음에 지점 목록에 나타났습니다.

이러한 작업에 대한 일반적인 자식 동작입니까? 내가 리모컨의 브랜치에 대한 이전 지식을 알고 있어야했던 로컬 레포를 업데이트하기 위해 리모트 레포에서 가져 오거나 가져 오는 경우, git branch 명령 중에 표시되지 않는 이유는 무엇입니까? 그리고 git branch 이후에 볼 수 없는데 왜 내가 그들을 확인할 수 있습니까?

이 사가는 THIS과 비슷하지만 사실 내 브랜치는 실제로 거기에 있었고 체크 아웃 할 때까지 다음 git 브랜치 명령을 표시하지 않았습니다.

+2

'git branch -a'는 원격 브랜치와 로컬 브랜치를 보여주고'git branch'는 오직 로컬 브랜치만을 보여줍니다. 머신 B에서,'branchname'은'git checkout branchname' 명령 전에 로컬 브랜치로 존재하지 않습니다. –

답변

2
$ git branch  # only local branches 
* master 

branchnamegit checkout branchname 명령 이전에 지역 지점으로 존재하지 않으므로 목록은 master 보여줍니다.

$ git fetch 
$ git checkout branchname 
$ git branch 
    master 
* branchname 

모든 원격 및 로컬 브랜치를 참조하십시오.

$ git branch -a # remote and local branches 
$ git branch -r # remote branches only 

참고 : 여기, git checkout branchname 실제로 branchname라는 로컬 브랜치를 찾습니다. 발견되면 해당 지점으로 체크 아웃하지만 발견되지 않으면 원격 지점 목록에서 검색합니다 (예 : origin/branchname). 발견되면 origin/branchname과 동일한 내역 branchname을 작성하십시오.

+1

감사합니다. Sajib. 이 실험을 해봤지만 당신의 대답과 코우 스키의 설명은이 특정 시나리오에서 git의 철학을 훨씬 잘 이해하는 데 도움이되었습니다. –

2

git branch은 매개 변수없이 로컬 지점 만 표시합니다. fetch 일 때 원격 지점에 대한 정보는 업데이트되지만 git branch -r (원격 분기 만) 또는 @SajibKhan이 제안한대로 git branch -a (모든 원격 및 로컬 분기)을 사용할 때만 표시됩니다.

그래, 이것은 의도 한 행동입니다. git가 원격 브랜치를 인식하고 자동으로 원격 브랜치를 추적하도록 설정된 새로운 브랜치 브랜치를 설정하기 때문에 이들을 체크 아웃 할 수있다. 기계 B에서

+0

감사합니다. 내 실험이 너의 설명을 확인해 주었다. 나는이 특별한 시나리오에서 git 철학을 이해하지 못했다. 이제는 의미가 있습니다. –