2010-04-22 4 views
110

a question about pulling one commit at a time from a git repository에 대한 응답으로 git fetch 대신 git remote update을 사용하는 것이 좋습니다. 나는 두 개의 맨 페이지를 모두 읽었지만 나는 그 중 하나를 모두 이해했다고 말할 수는 없다.`git fetch origin '과`git remote update origin'의 차이점은 무엇입니까?

아무도 나에게 설명 할 수 있습니까 git fetch originget remote update origin 다르게 동작합니까?

+3

가능한 복제본 [git 원격 업데이트와 가져 오기 간의 차이점] (http://stackoverflow.com/questions/1856499/differences-between-git-remote-update-and-fetch) –

답변

128

이와 같이 사용하면 아무런 차이가 없습니다.

remote update은 매우 높은 수준의 명령입니다 - 그것은 그룹화 리모트 (remotes.<group> = <list>)를 지원하고, (remote.<name>.skipDefaultUpdate 세트를 제외한) 모든 리모컨을 업데이트 있지만 모든 가져 오기의 세부적인 옵션의. 후드의 경우 기본 옵션을 사용하여 가져 오는 것과 완전히 똑같습니다.

git fetch 대신 remote update을 권유하는 답변은 실제로 인수를 명명 한 것뿐만 아니라 모두를 가져 오기 위해 원격 이름없이 권장했습니다. 이것은 git fetch --all과 같습니다.

가져 오기 및 원격 업데이트가 v1.6.6.1 (2009 년 12 월 23 일 출시)까지 실제로 동일한 코드 패스를 사용하지 않았다는 경고를 추가해야합니다. 그 전에도, 그들은 본질적으로 똑같은 것을했지만, 다른 코드를 사용했습니다 (모서리의 경우 약간 다르게 행동 할 수는 있었지만, 머리 꼭대기에서 생각할 수는 없었습니다).

+0

매우 흥미 롭습니다. +1. Git 릴리스 노트 (http://pastebin.com/LNhRhQS3)를 컴파일하면 1.7.0 (1.6.6.2 바로 뒤에)만이 "git fetch --all"을 허용하는 것으로 보입니다. ""git remote update' 대신에 사용됩니다. " – VonC

+0

아, 실제로'fetch --all'이 들어 왔는지는 확인하지 못했습니다. git log --grep = ...와 git describe - contains의 변형으로이 모든 작업을 수행합니다. git clone. – Cascabel

+0

흠, 그게 이상해. 9c4a036b 커밋은 "git fetch '에 대한 --all 옵션을 가르쳐 주며 git describe --contains는'v1.6.6.1 ~ 1^2 ~ 9'를 제공한다. (내 대답에 언급 한 원격 업데이트 변경과 동일한 릴리스, 마이너 릴리스 버전을 추가하기 위해 업데이트 됨). 어쩌면 릴리스 노트를 읽는 것이 늦은 것일까 요? – Cascabel

관련 문제