Git을 사용하다 보면 git fetch
와 git pull
의 차이가 헷갈릴 때가 있습니다. 두 명령어의 차이점을 명확히 알아보겠습니다!
git fetch
💡 핵심: 정보만 가져오고, 실제 파일은 건드리지 않아요!
git pull
git fetch
→ git merge origin/branch
과정을 자동으로 수행💡 핵심: 가져와서 바로 합쳐버려요!
git fetch
git status
# "Your branch is behind 'origin/main' by 3 commits"
# 로컬 파일은 그대로, 원격 정보만 업데이트됨
📊 상태: 원격 정보는 최신이지만 로컬 파일은 그대로
git pull
git status
# "Your branch is up to date with 'origin/main'"
# 로컬 파일이 최신 상태로 업데이트됨
📊 상태: 원격 정보 + 로컬 파일 모두 최신
git fetch # 원격 변경사항 확인
git log HEAD..origin/main # 어떤 변경사항이 있는지 미리보기
git diff HEAD origin/main # 코드 차이 확인
git pull # 확인 후 병합
git pull # 바로 가져와서 병합
명령어 | 동작 | 로컬 파일 변경 | 안전성 |
---|---|---|---|
git fetch | 원격 정보만 가져오기 | ❌ | ✅ 안전 |
git pull | 가져오기 + 병합 | ✅ | ⚠️ 주의 |
💡 결론: fetch는 "확인만", pull은 "확인+적용"
# 1. 원격 상태 확인
git fetch
# 2. 변경사항 미리보기
git log --oneline HEAD..origin/main
# 3. 문제없으면 적용
git pull
# 로컬 변경사항 임시 저장
git stash
# 안전하게 pull
git pull
# 저장했던 변경사항 복구
git stash pop