원격 저장소(깃헙)의 소스코드와 로컬 저장소의 소스코드를 일치키는 방법입니다.
명령어만 빠르게 확인하고 싶으시면 아래 명령어를 확인하시면 됩니다.
git fetch --prune origin
git reset --hard origin/main
<명령어 설명>
먼저 깃을 처음 다루는 사람들이 하는 가장 큰 착각 중 하나가 단순히 pull을 받으면 원격 저장소와 내 컴퓨터의 소스코드가 일치된다고 생각하는 것입니다. 하지만 pull을 받는다고 하여 원격저장소의 브랜치와 로컬브랜치의 소스코드가 같아지지는 않습니다. 왜냐하면 pull은 fetch + merge이며, 기존 로컬에 있는 코드와 원격에서 받은 코드가 merge 되며 합쳐지기 때문입니다.
때문에 fetch를 통하여 remote tracking branch (origin/main)를 원격 저장소와 일치시킨 뒤 git reset --hard origin/main 명령을 통해 로컬 브랜치의 소스코드를 원격 저장소의 코드와 일치시켜야 합니다.
즉 위의 명령어를 정리하자면,
1. git fetch --prune origin을 통해 remote tracking branch (origin/main)를 깃 헙 원격 저장소와 일치시킨다.
2. git reset --hard origin/main 를 통해 방금 전 동기화된 remote tracking branch (origin/main)에 로컬 브랜치를 일치시킨다.
<보충개념>
여기서 git prune이란?
fetching 하기 전, 리모트에 존재하지 않는 리모트 트래킹 브랜치를 삭제
git reset --hard origin/main의 의미?
origin/main branch와 일치시킨다. (git fetch로 remote tracking branch의 커밋을 remote 저장소의 브랜치와 일치시켰기에 효용이 있다)
git clean이란?
작업하고 있던 파일을 Stash 하지 않고 단순히 그 파일들을 삭제하고 싶은 경우에 사용하는 명령어
추적되고 있지 않는(unstage) 경우의 파일이 삭제되는 경우
리모트 트래킹 브랜치란?
밑에 링크로 남긴 스택오버플로우 두번째 답변이 리모트 트래킹 브랜치에 대한 이해를 할 때 많은 도움이 되었다.
'기타' 카테고리의 다른 글
npm package 버전관리 (0) | 2019.11.07 |
---|---|
암호화에서 해시(hash)란 무엇인가? (0) | 2019.10.22 |
나의 비밀번호를 지키기 위해서는 특수문자보다 길이가 우선되어야 한다. (0) | 2019.10.22 |