git fetch

Jung Hyun Kim·2021년 1월 5일
11

git

목록 보기
2/6
post-thumbnail

잘 안쓰는 git 정리하기 👆

쓰는것만 쓰는 깃이 아닌 안쓰는 기능도 이것저것 사용해보기 위한 깃 정리!

git fetch🤓

  • 보통 원격저장소의 master 가 update되어서 pull을 받을때, origin master(우리 회사의 경우 upstream master) pull 받아서

pull upstream master -> checkout 내 브랜치 -> merge master -> commit (conflict이 난 경우 충돌 해결하고 commit) -> git push 내 브랜치 의 형태로 이용했다.

이렇게 말고 git fetch 를 이용하면 어떻게 할 수 있을까?

단순하게 git flow 중 git pull 브랜치이름 을 실행하면 원격 저장소의 내용을 가져와 자동으로 merge가 되는데, 단순히 pull 받고싶은 branch의 내용을 확인하고 merge 하고 싶을때 fetch를 쓸 수 있다!

결국 git pull = git fetch + git merge

라는 뜻!

git fetch 사용 연습

나의 feature branch에서

  1. git pull origin master 을 실행하면 바로 병합한 뒤 conflict 를 보여준다.

  2. 그럼 fetch와의 차이를 보기위해 아래 명령어로 해당 pull이력을 취소 시킨다
    git reset --hard ORIG_HEAD

  3. git fetch origin master 를 실행한다

git pull 과는 다르게 우선 저장소의 내용을 가지고 온 것이기 때문에 따로 conflict이 나지 않는다. 저장소의 내용은 FETCH_HEAD라는 브랜치에 (자동으로) 반영된 것을 알수있다.

  1. 이때 git merge FETCH_HEAD 명령어를 실행하면 아까 pull 했을때 랑 동일하게 작동한다.


느낀 점

  • 보통 내 로컬 저장소에서 원격저장소의 코드를 pull 받은 다음 내 feature 브랜치를 적용 시키기 때문에 fetch를 쓸 일은 많이 없을 것 같지만
    부분 적으로 불러온다음 내가 지정한 브랜치에만 적용하고 싶을때는 사용할 수도 있을 것 같다!

  • 참조 웹사이트

profile
코린이 프론트엔드 개발자💻💛🤙🏼

0개의 댓글