git fetch와 git pull의 차이점

Pure·2025년 4월 6일

git & github

목록 보기
2/2
post-thumbnail

git fetch와 git pull의 차이점

우리가 무언가를 작업할 때, 항상 원격 저장소로 push만 하지는 않는다.
어떨 때는 원격 저장소에 있는 내용을 자신의 저장소, 즉 로컬 저장소로 가져와 새로운 내용을 갱신해야한다.
이때 고려해볼 수 있는 2가지 옵션이 바로 fetch와 pull이다.

📌Fetch

git fetch는 원격 저장소의 내용을 새로운 branch에 저장하기만 한다.
이 말의 뜻은 나의 로컬 저장소에 반영은 하지 않고 저장만 하기에 작업 중인 branch들에 영향을 주지 않는다.
일반적으로 fetch 이후 merge, rebase 등을 통해 원하는 branch에 변경사항을 적용한다.
pull에 비해 변경 사항을 먼저 확인하고, 적용할지 말지를 선택하기에 안전하다.

git fetch 원격저장소명(origin)
git branch -r // fetch 확인하는 명령어
git checkout [origin으로 시작하는 branch] // fetch한 브랜치로 이동

📌Pull

git pull은 원격 저장소의 내용을 원하는 branch에 즉시 반영한다.
직관적으로 느껴지듯, fetch처럼 변경 사항을 살펴보고 적용하는 것이 아니라 즉시 반영한다.
내부적으로 fetch와 rebase 과정을 자동으로 처리하는 방식이므로 충돌이 발생할 수 있다.
fetch에 비해 변경 사항을 즉시 반영하므로, 특정 상황에서는 편리하게 사용할 수 있다.

git pull origin main
//충돌이 발생했다면 충돌 해결 후
git add .
git commit -m "Pull 완료"

결론

일반적으로 협업하는 상황에서는 fetch를 통해 변경사항을 먼저 확인하고 반영하는 것이 안전하다.
그러나 원격 저장소의 버전이 최신이고 문제가 없음이 확정된 상황에서는 pull을 통해 바로 반영하는 것이 편리하다.

profile
Clean Code를 위한 한 걸음

0개의 댓글