이 질문은 Pro git "원격 브랜치"를 배울 때 발생합니다.
질문:
원격 추적 분기를 가져올 때 git fetch가 로컬 복사본을 생성합니까?
원문 설명을 먼저 읽어보시고,
작업을 동기화하려면 git fetch Origin 명령을 실행하세요. 이 명령은 "origin" 서버(이 경우 git.ourcompany.com)를 찾고, 로컬에서 사용할 수 없는 데이터를 가져오고, 로컬 데이터베이스를 업데이트하여 원본/마스터 포인터가 새 서버를 가리키도록 이동합니다. , 위치를 업데이트했습니다.
사진에서 보면 마스터 브랜치가 로컬이기 때문에 원격 웨어하우스(f4265 제출 지점)를 복제한 후 2개의 로컬 제출이 이루어지면서 새로운 제출 체인이 생성되었습니다. 동시에 서버의 다른 누군가가 서버에 커밋된 마스터 브랜치(31b8e, 190a3)를 푸시했습니다. 따라서 git fetch Origin을 사용할 때 제가 이해한 바는 다음과 같습니다.
로컬 마스터 브랜치는 포크 지점에서 영향을 받지 않습니다. 즉, 가져오기 전에 원본/마스터에서 시작하여 새 분기가 로컬로 생성되며 동시에 원본/마스터 포인터는 로컬 복사본의 끝을 가리킵니다.
하지만 아래를 읽은 후 이 문단이 다시 나왔습니다:
특별히 주의해야 할 점은 새로운 원격 추적 분기가 캡처될 때 편집 가능한 복사본(복사본)이 로컬에서 자동 생성되지 않는다는 것입니다. 즉, 이 경우에는 새로운 serverfix 분기가 없으며 단지 수정 불가능한 원본/serverfix 포인터만 있을 뿐입니다.
이해가 안 되네요. 제가 예전에 이해한 게 잘못된 건가요? 그렇다면 그림 32의 그림도 잘못된 걸까요? 두 개의 커밋 지점(31b8e, 190a3)은 로컬로 전혀 가져오지 않지만 데이터베이스에서는 새 원본/마스터 포인터만 가져옵니다. 주요 원문에는 "로컬에서 사용할 수 없는 데이터를 가져와 로컬 데이터베이스를 업데이트한다"는 내용이 매우 모호하며, 해당 데이터가 무엇인지 알려주지 않습니다.
아무 문제 없습니다.
이 점에 집중하세요. 이 지점이 마스터입니다.
따라서
git checkout -b serverfix origin/serverfix
편집 가능한 로컬 복사본을 만들려면 를 사용해야 합니다.마스터 브랜치만이 편집 가능한 로컬 복사본을 생성합니다. 다른 지점은 모두
origin/*
下面,需要手动的git checkout -b
에 있습니다.