
git fetch & git pull
pull과 fetch는 모두 원격 저장소에서 데이터를 가져올 때 사용한다.
차이점과 각 명령어를 사용해야하는 경우에 대해 알아보았다.
1. git fetch
- 로컬에는 없지만 원격 저장소에는 있는 변경 사항을 모두 가져오지만 작업 디렉토리에 자동으로 Merge 하지 않는다.
- 작업 디렉토리에 아무런 변경이 일어나지 않는다.
- 변경 사항을 로컬 브랜치에 적용하려면
git merge
나 git rebase
를 사용하여 수동으로 합친다.
$ git fetch <remote>
- git fetch를 사용하는 경우
- 주로 원격 저장소에서 최신 상태를 확인하고 로컬 저장소에 반영되기 전에 변경 사항을 검토하려는 경우에 사용된다.
git pull
은 충돌이 발생할 수 있기 때문에 여러 사람과 작업하는 경우 git fetch
를 사용하여 원격 브랜치를 확인한 후 적용한다.
2. git pull
- 원격 저장소에서 변경 사항을 가져올 뿐만 아니라 자동으로 로컬 브랜치와 Merge 시킨다.
git fetch
와 git merge
(or git rebase
)를 한번에 수행한다.
- 변경 사항을 직접 로컬 작업 디렉토리에 적용한다.
git pull
- git pull을 사용하는 경우
변경 사항을 가져오면서 바로 로컬 저장소에 적용되므로 변경 사항을 빠르게 반영하려는 경우 git pull
을 사용할 수 있다.