GIT
에서 사용하는 Pull 기능과 비슷한 Fetch 기능이 있습니다.
Pull은 원격저장소의 정보를 모두 가져와서 working directory
까지 카피하는데요
Fetch는 원격저장소의 변경된 커밋만 가져옵니다.
어떤 기능이 포함되어 있는지 명령어를 확인 해보겠습니다.
원격저장소에 있는 변경내역들을 로컬저장소로 pull
하기 전에 변경된 내역들만
가져와서 확인시켜주는 기능입니다.
원격저장소에 있는 내용을 pull
하기 전에, 어떠한 변경 내역들이 있는지 변경 내역
에 대한 로그를 확인하고 신중히 결정한 후에 pull
할 수 있는 기능입니다.
git fetch [원격저장소 이름]
# 원격저장소에 변동사항만을 가져 옵니다
git merge FETCH_HEAD
# FETCH_HEAD에 업데이트된 원격저장소의 최신 커밋이, 현재 브랜치에 병합 됩니다.
git fetch; git merge FETCH_HEAD
# git fetch + merge FETCH_HEAD 명령어를 한 번에 사용
❗ Git에서 Fetch 할 때 마다 업데이트 되는 .git 디렉터리 하위에 위치한 파일
이 파일에는 원격저장소가 병합할 때 마다 생기는 최신 커밋의 정보가 들어 있다.
이전에 실습을 진행한, Git Pull 실습 환경과 동일한 구성입니다.
1. 개발자 A 저장소에서 파일을 수정하고 원격저장소에 Push
2. 원격저장소에 변경한 내용을 개발자 B 저장소에 Fetch
3. 변경된 내역을 병합해서 로컬저장소의 최신커밋 버전으로 만들기
GIT
에서 FETCH_HEAD 파일은 원격저장소에 업데이트한 내용을 로컬저장소가 fetch 명령어를
사용할 때, 업데이트된 내용의 커밋 ID가 저장되는 파일 입니다.
이 파일을 사용해서 git pull or git fetch + merge 와 같은 기능을 발휘할 수 있습니다.
1. 원격저장소에 새로 Push
하기
2. 로컬저장소에 FETCH_HEAD 파일을 사용해 병합하기
결과적으로 fetch는 원격저장소의 업데이트된 최신 커밋의 정보를 가져오는 명령어입니다.