1. fetch와 pull의 핵심 차이


결론부터 말하면 이렇다.

git fetch: 원격 저장소의 최신 내용을 다운로드만 함 (로컬 브랜치는 변경 안 됨)

git pull: 원격 저장소의 최신 내용을 다운로드하고 자동으로 merge까지

git pull = git fetch + git merge

2. 동작 방식 비교


2-1) git fetch 동작

git fetch origin main

실행 결과:

              C---D---E  feature (내 로컬 브랜치, 그대로)
             /
A---B---F---G  origin/main (원격 main, 업데이트됨)
            |
            F  main (내 로컬 main, 그대로)

e.g. 작업 예시

# feature 브랜치에서
git fetch origin main

실행하면:

결과 메시지만 이렇게 나온다.

From <https://github.com/user/repo>
 * branch            main       -> FETCH_HEAD