git_part5.5_git pull VS fetch 그리고 원격 브랜치와 fetch

Eugenius1st·2022년 1월 24일
0

git

목록 보기
29/35

git pull = git fetch + git merge FetCH_HEAD

pull 과 fetch의 차이점인 위 공식의 의미를 알아보자 !!

협업 전에는 보통 pull한다.>>commit>>push

근데 이때 pull 전에
fetch를 통해

이 과정으로 pull과 같은 효과를 낼 수 있다.

또한

remote 저장소가 아니라 remote 브랜치를 알아보자.


여기 master라는 것은 나의 지역 저장소의 master 이다.


여기 origin 은 나의 원격저장소의 master 브랜치를 가르킨다.

이 것은
마지막으로 마스터 branch의 어떤 버전을 가지고 왔는지를 의미한다.

work.txt를 수정해보자.
commit 하고 git l을 해보자

현재 브랜치는 master 이고 work 3a를 가르킨다. 하지만 origin master은 ab~~~를 가르킨다.

현재 우리의 master 브랜치는 origin master 의 브랜치보다 하나의 버전이 앞서 있다는 것을 알 수 있다.

git status로도 확인할 수 있다.

push해야 한다는 뜻.
이제 push 하고 git log해보면



origin 이 master 와 같은 branch를 가르키는 것을 알 수 있다.

fetch로 땡겨와볼까?

작업의 마지막은 3a 였다

근데 오른쪽에는..?

master 브랜치보다 한칸 더 앞서있다.

너의 branch가 origin master보다 하나의 커밋만큼 뒤쳐저 있다. 그러니 git pull을 해라. 는 의미이다.


이때

git pull 하거나

origin master을 나의 master branch로 merge해도 된다.



이러면 git pull한것과 똑같이 된다.

즉 git pull하는 것은, git fetch하는 것은
git fetch를 통해 원격저장소만 업데이트 때리고 git merge, 우리가 가져온 원격 브랜치가 master라고 한다면

이것과 똑같은 의미이다.

하지만 어떤 merge하는 것은 귀찮은 일이다.

그래서 우리는 .git 안에

이러한 파일을 만든다.

즉 원격저장소의 가장 최근에 merge한 내용이다,
그래서 fetch할때.

git fetch: git merge FETCH_HEAD
이렇게 하면

git은 여기있는 파일을 참고해서 가장 최근에 FETCH했던 내용을 merge시켜준다.

알아서 해주니 아주 편리하다.

remote branch만 가져오는 방법인
git fetch이다.
지역 brach랑 merge하는 방법도 살펴봤다.

이것은 신중하게 git의 데이터를 pull하고 싶을 때. 일단 결합은 나중에하고 가져오기만 하고 싶을 때 fetch라는 것을 쓰면 된다. 복잡하다고 ? 그럼 그냥 pull 해라

profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글