simminjeong Report
git fetch 와 git pull의 차이
git fetch와 git pull의 공통점
모두 원격 저장소에서 변경된 내용을 로컬 저장소로 가져오는 명령어
로컬 저장소와 원격 저장소의 차이
로컬 저장소
- 개발자가 작업하는 로컬 컴퓨터에 있는 저장소 (개발자가
작업
하는 공간) - 개발자가 작업하는 프로젝트의 버전 관리를 위한 저장소이며, 로컬 저장소에서는
커밋(commit)
을 통해 버전을 관리 - 로컬 저장소에서는 브랜치(branch)를 만들어 병합(merge) 작업을 수행하거나 변경 내용을 추적가능
원격 저장소
- 인터넷 상의 다른 컴퓨터에 위치한 저장소 (개발자가
공유
하는 공간) - 여러 개발자가 공유하는 저장소이며, 중앙 집중식 버전 관리 시스템(Centralized Version Control System) 역할
원격 저장소에는 로컬 저장소에서 커밋한 내용을 push하여 업로드하거나, 다른 개발자가 push한 내용을 pull하여 다운로드 가능
- 이를 통해 여러 개발자가 같은 프로젝트를 공유하고, 변경 내용을 함께 관리
git fetch
- 원격 저장소에서 변경된 내용을 가져오지만
로컬 저장소에 반영하지 않음
(가져오기만 함) - 이후에 로컬 저장소에 반영하고자 할 때는
별도의 병합 작업을 수행
해야 함
상황 별 사용 예시
-
여러명이 협업하는 경우
여러명이 같은 원격 저장소를 공유하고 있는 경우, 다른 사람이 원격 저장소에 변경사항을 push한다면 로컬 저장소에서 변경된 내용과 원격 저장소의 변경된 내용이 달라짐. 이런 경우에는 git fetch를 사용하여 원격 저장소의 변경사항을 로컬 저장소로 가져온 후, 변경된 내용을 확인하고 수동으로 병합 작업을 수행하여 작업 가능.
$ git fetch origin $ git diff HEAD origin/master $ git merge origin/master
-
변경사항을 확인할 때
로컬 저장소에서 변경된 내용과 원격 저장소에서 변경된 내용을 비교할 때 git fetch를 사용하여 원격 저장소의 변경사항을 가져와서 확인.
$ git fetch origin $ git diff HEAD origin/master
git pull
- 원격 저장소에서 가져온 내용이
자동으로 로컬 저장소에 반영
- git fetch + merge
상황 별 사용 예시
-
로컬 저장소와 원격 저장소의 동기화
로컬 저장소에서 작업하다가 원격 저장소에 변경사항이 있을 경우, 로컬 저장소와 원격 저장소를 동기화해야 함. 이때, git pull을 사용하여 원격 저장소에서 변경된 내용을 자동으로 로컬 저장소로 가져올 수 있음.
$ git pull origin master
서브목차