Git을 사용하다보면 원격 저장소에 있는 branch를 로컬 저장소로 가져와야하는 경우가 있다.
협업하고 있는 다른 팀원의 branch를 가져와서 작업을 해야하는 경우 혹은 혼자서 2대의 PC를 사용하고 작업파일을 Git으로 관리하는데 branch를 따서 작업하는 경우 등이 여기에 해당한다.
실제 나도 회사에서 두 개의 원격 저장소에서 작업을 하다보니 다른 원격 저장소에서 작업한 branch를 로컬 저장소로 가져와야 하는 경우가 있었다.
git checkout -t <원격 저장소의 branch명> 명령을 이용하면 원격 저장소의 branch를 가져오는 것과 동일한 기능을 한다.
git remote update
먼저 원격 저장소의 브랜치에 접근하기 위해서는 git remote를 갱신해줄 필요가 있다.
$ git remote update
원격 저장소의 브랜치를 찾지 못하여 발생하는 다음과 같은 오류 메시지를 위 명령어를 입력하여 갱신해줌으로써 해결할 수 있다.
fatal: Cannot update paths and switch to branch 'feature/hhyolls' at the same time.
하지만,
$ git branch 로 확인해보면 원격 저장소의 branch는 받아지지 않았고 기존에 있던 브랜치만 존재한다.
원격 저장소 branch 확인
원격 저장소의 branch 리스트를 확인하는 방법이 있다.
$ git branch 의 -r 옵션을 주면 원격 저장소의 branch 리스트를 볼 수 있고,-a 옵션을 주면 로컬, 원격 모든 저장소의 branch 리스트를 볼 수 있다.
$ git branch -r
$ git branch -a
원격 저장소의 branch 가져오기
위의 상황에서 만약 원격 저장소의 branch를 가져오고 싶다면, 아래와 같이 하면 된다.
1. branch명 그대로 가져오고 싶을 때
$ git checkout -t <원격 저장소의 branch명>
-t 옵션과 원격 저장소의 branch 이름을 입력하면 로컬저장소에 동일한 이름의 branch를 생성하면서 해당 branch로 checkout을 한다.
2. branch명을 변경하여 가져오고 싶을 때
$ git checkout -b <생성할 branch명> <원격 저장소의 branch명>
-b 옵션을 사용하여 branch명을 변경하여 원격 저장소의 branch를 가져올 수 있다.
원격 저장소의 branch 참고하기
어떤 경우에는 수정 내역을 원격 저장소에 push 하지는 않지만 해당 branch를 참고하기 위해 로컬에 받아서 테스트 해보고 싶은 경우도 있다.
$ git checkout <원격 저장소의 branch명>
아무런 옵션없이 원격 저장소의 branch를 checkout 하면 ‘detached HEAD’ 상태로 소스를 보고 변경 해볼 수도 있지만 변경사항들은 commit, push 할 수 없으며 다른 branch로 checkout하면 사라진다.
'개발도구 > Git' 카테고리의 다른 글
git filter-branch (0) | 2022.10.23 |
---|---|
git cherry-pick (원하는 commit 가져오기) (0) | 2022.07.31 |
git remote add (원격저장소 추가) (0) | 2022.07.31 |
git branch -d (브랜치 삭제하기) (0) | 2022.07.03 |
강제 (force) push 수행하기 (0) | 2022.07.03 |
댓글