원격에서 임의의 심판을 가져올 수 있습니다 (서버가 기꺼이 제공하려는 경우). refs/heads/
외부의 참조를 페치하는 핵심은 refs/
으로 시작하는 전체 참조 경로를 제공하는 것입니다. 원하는 경우 리모컨으로 구성되지 않은 저장소에서 가져올 수도 있습니다 (자식이 가져 오기은 원격 이름 대신 URL을 사용할 수 있음).
기본적으로 구성된 원격지는 원격 저장소의 refs/heads/
네임 스페이스에서만 가져 오기하므로 refs/remotes/
안에있는 모든 항목을 가져 오지 않습니다. 그러나 refs/remotes/trunk
과 같은 완전한 참조를 사용하여 내부의 참조를 참조 할 수 있습니다 (remotes/trunk
도 작동 할 수 있지만 모호 할 수도 있음).
가져온 refspec에서 대상 ref를 지정하지 않으면 특수한 FETCH_HEAD ref에 저장됩니다.
가져 오기 저장소의 refs/remote/trunk
FETCH_HEAD에와 분리 된 HEAD로 체크 아웃 :
git fetch remote-name-or-url refs/remotes/trunk &&
git checkout -b trunk-from-remote FETCH_HEAD
: 대신 분리 된 HEAD를 사용하는 명명 된 지역의 지점을
git fetch remote-name-or-url refs/remotes/trunk &&
git checkout FETCH_HEAD
동일하지만, 만들
동일하지만 로컬 지점에 직접 입력 :
git fetch remote-name-or-url refs/remotes/trunk:trunk-from-remote &&
git checkout trunk-from-remote
구성된 리모컨으로 작업하는 경우 해당 remote.<remote-name>.fetch
구성을 다시 쓰고 refs/heads/
및 refs/remotes/
의 가져 오기를 자동화하는 추가 항목을 추가 할 수 있습니다.
# fetch branchs of remote into remote-name/heads/*
git config remote.remote-name.fetch '+refs/heads/*:refs/remotes/remote-name/heads/*' &&
# fetch remotes of remote into remote-name/remotes/*
git config --add remote.remote-name.fetch '+refs/remotes/*:refs/remotes/remote-name/remotes/*'
가능한 충돌을 피하기 위해, 상기 예는 분리 된 네임 (
…/heads/
및
…/remotes/
)에 저장 심판을 페치 구성한다. 원하는 경우 다른 이름을 선택할 수 있습니다. 충돌이 없다고 확신하는 경우 직접
refs/remotes/remote-name/
아래에 둘 다 채울 수도 있습니다.
Jefromi와 Chris의 답변으로 충분합니다. 난 그냥 재미있는 질문에 대한 참조를 추가 http://stackoverflow.com/questions/1070496/having-a-hard-time-understanding-git-fetch. – VonC