pull 과 fetch의 차이점인 위 공식의 의미를 알아보자 !!
근데 이때 pull 전에
fetch를 통해
이 과정으로 pull과 같은 효과를 낼 수 있다.
또한
여기 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를 가르키는 것을 알 수 있다.
작업의 마지막은 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 해라