원격 저장소

pull, 원격 저장소의 데이터를 로컬 저장소에 가져와 병합하기

입문 편에서 설명한 바와 같이, pull 을 실행하면 원격 저장소의 변경된 데이터를 가져올 수 있습니다. 경우에 따라 로컬 저장소에 pull 한 데이터가 어떻게 반영 되는지 그림을 통해 확인해 보도록 하겠습니다.

먼저 아래 그림과 같이 로컬 저장소의 모든 변경 사항이 반영되어 있는 상태에서 새로운 변경 사항이 있는 원격 저장소의 커밋 Y 를 로컬로 가져오는 경우를 살펴 보도록 하겠습니다.

로컬 브랜치에 변경 사항이 없는 경우

이런 경우, 단순히 'fast-forward 병합'이 이루어집니다. 그림 속의 'master'는 로컬 저장소의 'master' 브랜치, 'origin/master'는 원격 저장소 'origin'의 'master' 브랜치를 나타냅니다.

fast-forward 병합

그러나 로컬 저장소의 'master' 브랜치에서도 변경 사항이 생긴 경우, 양 쪽의 변경을 통합할 필요가 있습니다.

로컬 저장소의 'master' 브랜치에 변경 사항이 있는 경우

이 때 pull 을 실행하여 소스를 병합할 수 있습니다. 충돌하는 변경이 없을 경우 자동적으로 병합 커밋이 만들어 지지만, 충돌이 있을 경우에는 충돌난 부분을 수동으로 해결한 다음 직접 commit 을 해 주어야 합니다.

변경된 부분들에 서로 충돌이 없다면, 커밋은 자동으로 잘 처리될거야!