본문 바로가기
개발툴/Git&Github

[git checkout 원격저장소 브랜치]에 대한 이해, 원격 브랜치를 로컬로 가져오는 방법

by GangDev 2024. 3. 23.

git을 이것저것 만지다가 궁금증이 생겼다.
'checkout 원격저장소의 브랜치'를 하면 에러가 나는 것이다.

 

에러 코드는 'error: pathspec 'seonhee' did not match any file(s) known to git', 즉 git이 'seonhee'라는 이름을 가진 브랜치나 파일을 찾을 수 없다는 것이다.

 

인터넷에 찾아봤더니 checkout 으로 바로 원격저장소의 브랜치를 사용할 수는 없다고 나와 있다.
대강 이유를 찾아보니, git에서는 "로컬 브랜치에서 작업"-"변경 사항 커밋"-"원격 저장소에 푸시" 이런 작업 흐름으로 진행하는데, 이렇게 하면 로컬에서 자유롭게 작업할 수 있는 유연성을 제공한다는 것이다.
만약 원격 브랜치를 직접 checkout하고 작업-커밋이 가능해진다면, 다른 사용자가 같은 브랜치에서 작업할 때 충돌이 발생할 가능성이 크기에, 애초에 막아놓는 안정적으로 버전 관리하는 데 도움이 될 터이다.


그렇다면, 원격 브랜치를 로컬로 checkout 하려면 어떻게 해야 할까?

예를 들어 위와 같은 상황에서 seonhee 브랜치를 끌어와서 로컬에서 작업하려면 어떻게 해야 할까?
로컬 브랜치를 생성하고 해당 원격 브랜치를 추적하도록 설정해야 한다.

 

git checkout -b [로컬 브랜치 이름] [원격 브랜치 경로]

 

예를 들어 'origin/seonhee'라는 원격 브랜치를 로컬에서 'seonhee'라는 이름으로 체크아웃하고 싶다면,

 

git checkout -b seonhee origin/seonhee

 

이렇게 하면, 'seonhee' 라는 새로운 로컬 브랜치를 생성하고, 원격 저장소의 'origin/pilwoo'브랜치를 추적하도록 설정한다.
이렇게 로컬 브랜치가 원격 브랜치를 추적하면, 'git pull'이나 'git fetch' 명령을 사용해서 로컬 브랜치를 원격 브랜치의 최신 상태와 간편하게 동기화할 수 있다.