본문 바로가기

게으른개발자/공부

git fetch와 pull의 차이

사용 목적
- pull: 원격저장소에 있는 소스를 현재 로컬 소스에 병합하기 위해
- fetch: 단순히 원격 저장소의 내용을 확인만 하고 로컬 데이터와 병합은 하고 싶지 않은 경우

동작 과정
- fetch:  원격 저장소의 최신 이력을 이름 없는 브랜치로 로컬에 가져옴  & 해당 브랜치는 'FETCH_HEAD'의 이름으로 체크아웃 가능
- pull은 원격저장소의 내용을 가져와 자동으로 현재 소스에 병합작업을 진행.

공통점
원격저장소의 최신이력을 가져온다.

차이점
현재 로컬소스에 병합을 하냐 마냐의 차이.


결론
pull은 fetch의 더 큰 동작 (pull이 내부적으론 fetch와 merge를 같이 동작하기 때문)
ex git pull => git fetch & git merge FETCH_HEAD

참고: https://backlog.com/git-tutorial/kr/stepup/stepup3_2.html