`git fetch 업스트림 마스터 '명령에'마스터 '를 포함시키는 이유는 무엇입니까?
문제
섹션에서 상류 변화를 당기고 있습니다 ~에 도와 주 프로젝트 포킹 그것은 말한다 :
언젠가는 시간이 지남에 따라 상류 리포가 변경되었고 새 패치를 제출하기 전에 포크를 업데이트하려고합니다. 이를 수행하는 두 가지 방법이 있습니다.
$ git fetch upstream master
$ git merge upstream/master
그들이 포함하는 이유 master
Fetch 명령에서? 나는 보았다 git help fetch
정보이지만 나는 무엇을 포함하는지 이해하지 못한다 master
하다. 감사.
해결책
그것은 당신이 다음을 허용합니다 :
- 마스터 업스트림 브랜치 만 로컬 버전을 업데이트하십시오 (업데이트와 반대로 모두 더 오래 할 수있는 업스트림 repo의 지점)
- 병합을 트리거하지 않습니다 곧 (풀 명령과 반대로)
그만큼 git merge
그런 다음 해당 로컬 버전의 업스트림 마스터를 Repo Master Branch에 병합합니다.
그래서 여기, 마스터는입니다 fetch
명령, refspec.
<refspec>
a의 형식
<refspec>
매개 변수는 옵션 플러스 +이고 소스 심판이 이어집니다.<src>
, 그 다음에 콜론 :, 그리고 목적지 심판이 뒤 따릅니다.<dst>
.원격 심판이 일치합니다
<src>
가져 와서 IF가 있습니다<dst>
비어있는 스트링이 아니며, 일치하는 로컬 심판은 빠르게 사용됩니다.<src>
.
옵션 플러스 인 경우+
사용되면 로컬 심판이 빠르게 업데이트되지 않더라도 업데이트됩니다.
여기, <dst>
비어 있으므로 일치하는 로컬 브랜치 (마스터)가 업데이트됩니다.
마스터 없이는 다음과 같이 줄 것입니다.
git fetch upstream
위의 명령은 리모컨의 모든 분기를 복사합니다
refs/heads/
네임 스페이스 및 로컬에 저장합니다refs/remotes/upstream/
그렇지 않으면 네임 스페이스branch.<name>.fetch
옵션은 비 디폴트 리프 스펙을 지정하는 데 사용됩니다.