`git fetch origin`과`git remote update origin`의 차이점은 무엇입니까?


115

git 저장소에서 한 번에 하나의 커밋 을 가져 오는 것에 대한 질문에 대한 응답으로 git remote update대신 을 사용 하는 것이 좋습니다 git fetch. 두 매뉴얼 페이지를 모두 읽었지만 그 중 어느 쪽도 완전히 이해했다고 말할 수는 없습니다.

누구든지 나에게 어떻게 설명 git fetch origin하고 get remote update origin다르게 행동 할 수 있습니까 ?


답변:


133

이렇게 사용하면 차이가 없습니다.

remote update매우 높은 수준의 명령입니다. 그룹화 된 원격 ( remotes.<group> = <list>)과 모든 원격 업데이트 ( remote.<name>.skipDefaultUpdateset이 있는 원격 제외 )를 지원하지만 더 구체적인 가져 오기 옵션은 지원하지 않습니다. 그러나 내부적으로는 기본 옵션을 사용하여 가져 오는 것과 똑같은 작업을 수행합니다.

remote updategit fetch 대신 권장 하는 대답 은 실제로 인수로 명명 된 이름이 아닌 모두를 가져 오기 위해 원격 이름없이 권장하는 것입니다. 이것은 git fetch --all.

가져 오기 및 원격 업데이트가 v1.6.6.1 (2009 년 12 월 23 일 출시)까지 실제로 동일한 코드 경로를 사용하지 않았다는 경고를 추가해야합니다. 그러나 그 전에도 그들은 다른 코드를 사용하여 본질적으로 동일한 작업을 수행했습니다.


1
매우 흥미로운. +1. Git 릴리스 노트 (여기에서 컴파일 한 : pastebin.com/LNhRhQS3 )를 살펴보면 1.7.0 (1.6.6.2 직후)에서만 " git fetch --all"대신 " "를 사용할 수 있습니다 git remote update.
VonC

때 아, 사실은 확인하지 않았다 fetch --all에 갔다. 난 그냥의 변화에 의해 모든이 작업을 수행 git log --grep=...하고 git describe --contains내 git.git 복제에.
Cascabel

흠, 이상합니다. commit 9c4a036b는 "Teach the --all option to 'git fetch'"이고 git describe --contains는 v1.6.6.1~1^2~9. (내 대답에서 언급 한 원격 업데이트 변경과 동일한 릴리스, 거기에 부 릴리스 버전을 추가하도록 업데이트되었습니다). 출시 노트에 늦었을 수도 있습니다.
Cascabel

@Jefromi : 그 정보를 파헤치는 좋은 방법이지만, 나는 먼저 릴리스 노트를 보는 것을 선호하고 모든 릴리스 노트에 대해 페이지 가 부족해서 답답했습니다 .
VonC

@Jefromi : 맞습니다 ... 이제 커밋 9c4a036b가 1.7 이전의 공식 릴리스에서 성공하지 못한 이유를 확인하기 위해 모든 "Git에서 요리하는 것"을 집계하는 방법을 찾아야합니다.)
VonC
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.