2022. 1. 26. 16:22ㆍGit
- fetch란? 원격 저장소에 있는 정보를 가져오는 명령어(FETCH_HEAD라는 브랜치로 가져옴)
- case#1 : 로컬 저장소 내용 무관하게 원격 저장소랑 싱크 맞추기
-> A와 B가 함께 작업하는 branch1인 경우, B가 커밋을 넣어도 A에서는 해당 커밋이 인식되지 않아 git log를 해도 최신화할 내용이 없다고 뜬다. 따라서, 원격 저장소 branch1의 정보를 가져오기 위해 git fetch를 수행한다. 이후에 git reset --hard origin/branch1 이라는 명령어는 현재 시점에 최신화된 origin/branch1의 소스로 변경이 된다. git pull origin branch1을 하게 되면 fetch이후 시점에 새로운 커밋이 발생한 경우 끌어오게된다.
위의 설명을 그림으로 도식화 하자면,
(1) git fetch : FETCH_HEAD가 origin/branch1의 정보를 받아온다.(이때는 D가 최신 커밋)
(2) git reset --hard origin/branch1 : FETCH_HEAD의 커밋으로 branch1이 옮겨간다.
(3) git pull origin branch1 : 이후에 생긴 커밋 E가 pull(fetch+merge) 된다.(만약, E라는 신규 커밋이 없다면 (3)을 수행해도 Already up to date. 라는 구문이 나올 것임. 이미 최신 상태이므로 더 이상 끌고 올게 없다는 의미)
'Git' 카테고리의 다른 글
SubModule 추가 (1) | 2022.07.30 |
---|---|
rebase 이해하기 (0) | 2022.01.18 |
Graph에서 Branch 분기가 나타나지 않을 때 (0) | 2021.04.23 |
Git 저장소 개념 (0) | 2021.04.23 |