'git remote update', 'git fetch'및 'git pull'의 차이점은 무엇입니까?


80

나는 지금 Git으로 플레이하기 시작했고 약간 혼란스러워. 저에게는 동일한 작업을 수행 할 수있는 많은 옵션이있는 것 같습니다. 지금 내 질문은 아래 명령의 차이점입니다.

  • 자식 원격 업데이트
  • 자식 가져 오기
  • git pull

또한 원격 지점의 로컬 사본을 업데이트하는 데 더 적합한 것은 무엇입니까?



답변:


101

git remote update 원격 분기를 추적하도록 설정된 모든 분기를 업데이트하지만 변경 사항을 병합하지는 않습니다.

git fetch 현재 브랜치 만 업데이트하고 변경 사항을 병합하지는 않습니다.

git pull현재 브랜치의 원격 변경 사항을 업데이트 하고 병합합니다. 이것은 로컬 브랜치를 업데이트하는 데 사용하는 것입니다.


6
git fetch원하는 경우 다른 분기를 업데이트합니다. 시도git fetch --all
Arafangion 2013-07-18

7
refspecs를 사용하여 가져 오기로 실제로 빨리 감기를 수행 할 수 있다는 것을 알고 계셨습니까? : git fetch origin master:master. master그래도 체크 아웃 하지 않은 경우에만 작동합니다. Git은 분기 포인터를 이동해야하고 현재 분기에있는 경우에는 수행하지 않기 때문입니다.

8
'get fetch'는 --all 스위치를 사용하지 않아도 모든 분기를 가져 오는 것 같습니다. (Git for windows 2.10.0.1)
Simon P Stevens

15
이 답변에는 몇 가지 오류가 있습니다. 대부분은 원격 추적 분기 를 일반 분기와 혼동하는 데서 오는 큰 실수입니다. git fetch"현재 지점"을 업데이트하지 않습니다. 그러나 원격에 대한 모든 원격 추적 분기 origin또는 현재 원격에 대한 업스트림 추적 분기 가 원격 인 모든 원격 추적을 업데이트합니다 .
Colin D Bennett

19
또한 한 번에 어떻게 존재하지 않았 는지 설명하는 stackoverflow.com/a/17512004/994153 의 VERY 완전한 답변을 참조하십시오 . 지금 에 추가 된 , 정말 필요가 없습니다. git fetch --allgit remote update--allgit fetchgit remote update
Colin D Bennett

-7

git 원격 업데이트에 대해 확실하지 않지만 git pull은 git fetch 다음에 자동으로 git merge ...

이것은 부분적으로 중복됩니다. 확인 : 'git pull'과 'git fetch'의 차이점은 무엇입니까?

또한, 그것이 당신에게 의미가 있다면, 나는 git remote update도 fgit fetch도 사용하지 않았습니다. 풀, 커밋 및 푸시로 잘 할 수 있습니다.

도움이 되었기를 바랍니다 ..


1
git fetch그 자리가 있습니다 ... 때로는 관리자가 몇 개의 가지를 잘라 냈는지에만 관심이 있습니다. 때때로 당신은 당신이 속한 지점의 업데이트 만 원합니다.
Makoto

나는) = 그 말이 생각
LucasA

2
나는 거의 사용하지 않으며 git pull, 병합하기 전에 항상 업스트림 변경 사항을 미리 보는 것을 좋아하므로 주로 git fetch.

일반적으로 당신은 더 나은, 그래서 아직 마스터에 해당 지역의 업무 진행 지점을 병합하지 않으려 git remote update하고 git rebase작업 병합 할 준비가 될 때까지. 그렇지 않으면 기록에서 쓸모없는 병합 커밋이 많이 발생합니다.
user2061057
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.