2. 원격 브랜치 정보 가져오기
- git pull 명령은 원격 저장소의 최신 커밋을 지역 저장소에 합쳐준다.
하지만 최신 커밋을 합치기 전에 원격 저장소에 어떤 변화가 있는지 먼저 살펴봐야 한다.
이럴 때 원격 브랜치에서 정보만 먼저 가져올 수 있다.
- 원격 브랜치의 역할과 원격 브랜치에서 정보를 가져오는 방법, 가져온 정보를 지역 저장소에 병합하는 과정까지 본다.
2-1. 원격 master Branch
- 지역 저장소의 'master' Branch처럼 원격 저장소도 만들 때 기본으로 master Branch가 생성된다.
- 원격 저장소에 있는 브랜치는 '원격 Branch', 원격 저장소에 있는 master Branch는 '원격 master Branch'로 구별!
HEAD->master : add d가 지역 저장소의 최종 커밋이라는 의미
origin/master : add d가 원격 저장소의 최종 커밋이라는 의미
현재 지역 저장소와 원격 저장소의 최종 커밋이 같다.
2-2. 원격 Branch 정보 가져오기 - git fetch
- fetch : '불러오다, 가져오다' 라는 뜻으로 git fetch 명령은 원격 저장소의 정보를 가져오는 기능이 있다.
- pull vs fetch
pull : 원격 저장소의 커밋을 가져와서 무조건 지역 저장소와 합친다.
fetch: 원격 브랜치에 어떤 변화가 있는지 그 정보만 가져온다.
- 보통 팀 작업을 할 때 다른 사람이 수정한 소스를 훑어보고 지역 저장소와 합치고 싶다면
pull 대신 fetch를 이용해서 커밋을 가지고 온 후, 지역 저장소와 합치면 된다.
[git log --oneline] : (HEAD->master)만 보이고, 원격 저장소의 origin/master는 보이지 않는다.
fetch로 원격 저장소의 최신 정보를 가져왔지만, 아직 지역 저장소에 합치지 않아
원래 git_office에 있던 최신 커밋만 나타난다.
[git fetch] : 현재 branch가 origin/master에 비해 1개의 커밋이 뒤쳐져 있다고 뜨면서,
git pull 하면 update를 할 수 있다고 알려준다.
[fetch로 가져온 최신 커밋 정보] : fetch로 가져온 원격 저장소 정보는 FETCH_HEAD라는 branch로 가져온다.
fetch한 이후에 최신 커밋을 현재 branch에 합치려면
1) git pull 명령을 사용해서 원격 저장소의 소스를 내려받거나,
2) git merge 명령으로 FETCH_HEAD에 있던 커밋을 병합할 수도 있다.
따라서, git pull 명령 = git fetch + git merge FETCH_HEAD 명령으로 볼 수 있다.
git fetch로 원격 브랜치를 가져온 다음 git merge 명령을 사용해 원격 브랜치와 현재 브랜치를 합쳐주는 것을
git pull 명령으로 한꺼번에 할 수 있다.
+) fetch
1) git merge origin/master : 원격 master에 있는 커밋을 병합할 때
2) git merge origin/브랜치 이름 : 다른 브랜치에 있는 커밋을 병합할 때
3) git merge FETCH_HEAD : fetch한 뒤 지역 저장소에 반영하지 않은 최신 커밋을 병합한다.
'Git&GitHub > 이론&공부' 카테고리의 다른 글
[19일차] 깃허브로 협업하기 - 협업에서 브랜치 사용하기 (0) | 2020.08.27 |
---|---|
[18일차] 깃허브로 협업하기 - 협업의 기본 알아보기 (0) | 2020.08.27 |
[16일차] 깃허브로 협업하기 - 여러 컴퓨터에서 원격 저장소 함께 사용하기 (0) | 2020.08.25 |
[15일차] 깃허브로 백업하기 - 깃허브에 SSH 원격 접속하기 (0) | 2020.08.22 |
[14일차] 깃허브로 백업하기 - 원격 저장소에 올리기 및 내려받기 (0) | 2020.08.21 |