git fetch
개념
- 로컬 Git에게 원격 저장소에서 최신 메타데이터 정보를 확인하라는 명령을 전달
- 원격 저장소(origin)에 있는 변경 사항들을 로컬 저장소에 가져오기 전에 변경된 내역을 확인만 하는 경우 (변경된 데이터를 로컬 git에 가져오지는 않음)
사용 예: 작업한 파일을 깃허브에 올리고 퇴근했는데 다음 날 누군가 내 파일에 수정을 했는지 알고 싶을 때
사용법
- fetch 하기
git fetch 원격저장소명(origin)
- fetch 후 해당 브랜치로 checkout하기
- fetch를 확인할 수 있는 브랜치 내역 보는 명령어
git branch -r
- 예: origin/master라고 알려주는 모습
=> git checkout origin/master
를 쳐서 해당 브랜치로 들어간다.
- git log로 fetch한 커밋 내역 확인 => 누가 프로젝트에 커밋을 했는지 안 했는지 확인 가능
git pull
- 원격 저장소에 있는 변경 사항들을 로컬 저장소로 가져와 합치는 명령어
- fetch와 달리 로컬 저장소에 변경된 내용을 병합
요약
- 둘다 원격저장소의 내용을 가져오는데 사용됨
- fetch는 가져온 변경 내용을 로컬에 영향을 미치지 않으며, 병합하기 전에 확인하는 용도로 사용
- pull은 가져온 변경 내용을 로컬에 병합하여 로컬에 영향을 미침
- 하지만 로컬에서 작업하다가 변경된 내용을 pull할 경우 충돌이 일어날 수 있다.
- 웬만해선 fetch 후 pull을 로컬이 깨끗한 상태에서 사용하는 게 좋다.
참고 자료
Git Fetch와 Git Pull 명령어의 차이점
git fetch pull 사용법, fetch pull 차이점 알아보기