Menu
Coddy logo textTech

Git Fetch vs Pull

마지막 업데이트

git fetch는 원격에서 최신 커밋을 내려받지만 작업 브랜치는 그대로 둡니다. git pull은 같은 다운로드를 수행한 뒤 그 커밋들을 즉시 현재 브랜치에 병합합니다. 요약하면: git pull = git fetch + git merge입니다.

뛰어들기 전에 살펴보고 싶을 때는 fetch를, 통합할 준비가 되었을 때는 pull을 사용하세요. 둘 다 터미널 플레이그라운드에서 시도해 보세요 - 브라우저 안의 진짜 셸입니다.

git fetch는 새 커밋을 내려받아 origin/main만 갱신하고 내 브랜치는 그대로 둡니다. git pull은 곧바로 병합까지 합니다.

나란히 비교

Behaviorgit fetchgit pull
원격 커밋을 내려받음
현재 브랜치를 변경함아니오
병합 충돌을 일으킬 수 있음아니오
동등한 것다운로드만fetch + merge

문법

CommandWhat it does
git fetch모든 원격 변경 사항을 내려받고, 병합하지 않음
git fetch origin main원격에서 브랜치 하나만 가져옴
git pull내려받아 현재 브랜치에 병합함
git pull --rebase내려받은 뒤 당신의 커밋을 그 위에 리베이스함
git log HEAD..origin/mainfetch 후: 무엇을 병합하게 될지 확인함

Git fetch vs pull 자주 묻는 질문

git fetch와 git pull의 차이는 무엇인가요?
git fetch는 새 커밋을 내려받고 원격 추적 브랜치(origin/main 등)를 갱신하지만 작업 브랜치는 변경하지 않습니다. git pull은 같은 fetch를 수행한 뒤 새 커밋을 현재 브랜치에 병합합니다. 즉 pull은 파일을 변경하고, fetch는 원격에 대한 당신의 정보를 갱신할 뿐입니다.
git pull은 그냥 fetch에 merge를 더한 것인가요?
네. git pullgit fetch 뒤에 가져온 브랜치를 현재 브랜치로 git merge하는 것의 축약형입니다. git pull --rebase를 쓰면 두 번째 단계가 merge 대신 rebase가 되어 히스토리를 선형으로 유지합니다.
pull 대신 fetch를 언제 써야 하나요?
들어오는 변경 사항을 통합하기 전에 검토하고 싶을 때 git fetch를 사용하세요 - 예를 들어 git fetch 후에 git log HEAD..origin/main으로 정확히 무엇이 새로운지 확인합니다. 원격 변경 사항을 이미 신뢰하고 단지 브랜치에 병합하고 싶을 때는 git pull을 사용하세요.
git fetch가 충돌을 일으키는 경우가 있나요?
아니오. fetch는 원격 추적 브랜치만 갱신하며, 작업 브랜치나 파일은 절대 건드리지 않으므로 병합 충돌을 만들 수 없습니다. 충돌은 merge 단계에서만 발생합니다 - pull은 이를 자동으로 수행하지만 fetch는 그렇지 않습니다.
이것을 온라인으로 연습할 수 있나요?
네. 터미널 플레이그라운드를 열면 브라우저 안의 진짜 셸에서 git fetchgit pull을 실행할 수 있습니다 - 설치할 것이 없습니다. Coddy의 무료 인터랙티브 Git 강좌에서도 원격 작업을 단계별로 다룹니다.
Coddy programming languages illustration

Coddy로 Git 배우기

시작하기