최신화된 develop를 나의 작업 중인 브랜치로 가지고 오는 경우 내가 아는 작업의 방법은 아래와 같았다.

git remote update

git switch develop

git pull origin develop

git switch 나의 작업브랜치

git merge develop

//이후 merge 해결

그런데 최근 홀로 작업하던 프로젝트를 팀원들과 함께 작업을 하며, develop를 자신의 브랜치로 pull 해오라는 이야기가 헷갈려 각각의 정의를 정리해보았다.

git remote update

모든 원격 브랜치를 업데이트하여 최신 상태로 갱신한다. 하지만, 로컬에서 변동 사항을 병합하지는 않는다.

git fetch

현재 위치하고 있는 원격 브랜치만 업데이트한다. 하지만, 로컬에서 변동 사항을 병합하지는 않는다.

git pull

현재 위치하고 있는 원격 브랜치를 업데이트하고 로컬에서 변동 사항을 병합한다.

로컬 브랜치를 업데이트할 때 사용한다.

<aside> 💡 git pull 의 명령어 자체가 git fetchgit merge를 합쳐놓은 것이다. git fetch는 원격저장소에 commit 중 로컬에 없는 신규 commit을 가져오는 것이고 그 후에 merge를 하기 때문에 merge conflict이 발생할 수 있다.

</aside>