티스토리 뷰

Git

GIT4 - CLI 협업 5. 원격 브랜치와 FETCH

Programmers 2021. 5. 27. 17:23
반응형

git pull = git fetch + git merge FETCH_HEAD

git fetch를 통해 원격저장소만 가져오고
git merge origin/master를 하는 것과 같다.

fetch의 장점: 조금 더 신중하게 merge를 해야할 경우,
원격저장소에서 브랜치의 내용만 가져와서 merge할 수있다.

 

왼쪽: 사용자a
오른쪽: 사용자b

1. 사용자a: work.txt에 3a를 추가 작성

 

2. 사용자a: log를 확인
▷HEAD가 지역저장소의 master브랜치, 원격저장소의 origin/master브랜치를 가리킨다.
녹색의 master는 지역저장소의 브랜치, 빨간색 origin/master는 원격저장소의 브랜치

 

2. 사용자a: "work 3a"로 commit 후 log 확인
▷ HEAD가 지역저장소의 master브랜치 내용의 "work 3"만 가리킨다.
☞ 원격저장소의 origin/master브랜치가 1개의 commit만큼 뒤쳐져 있다.  

 

4. 사용자a: push하고 log확인
▷ HEAD가 지역저장소의 master브랜치, 원격저장소의 origin/master브랜치에 "work 3"을 가리킨다.

 

git fetch: git 원격저장소의 브랜치만 가져오는 방법

5. 사용자b: fetch를 통해 원격저장소의 브랜치만 가져오고, log를 확인
▷ HEAD가 여전히 지역저장소의 master브랜치를 가리킨다.
☞ 원격저장소에서 "work 3"를 가지고만 왔다. 

 

git merge FETCH_HEAD: 가장 최신의 내용을 병합 시켜준다.
※ .git/FETCH_HEAD 에 가장최신의 내용이 적혀있다.

6. 사용자b: git을 최신의 페치내용과 병합 후 log 확인 - (git merge FETCH_HEAD = git merge origin/master)
☞ HEAD가 지역저장소의 master 브랜치와 원격저장소의 origin/master브랜치의 "work 3a"를 가리킨다.

출처: https://opentutorials.org/course/3842/23969

 

반응형
댓글
공지사항