[git] remote branch를 local로 불러오자

Sam So·2021년 9월 1일
0

git

목록 보기
1/1

동료의 project를 clone해 사용하던 중, 원격 저장소에 저장되어 있는 branch들 이 때때로 local로 가져와져 있지 않는 현상이 발생했다.
pull, fetch 등 여러 명령어를 사용해봤지만 모두 실패. 원격 저장소에 저장되어 있는 branch와 관련된 정보를 불러오는 방법에 대해 알아보자.

git remote update: 원격 저장소 branch 정보를 모두 가져오려면

$ git remote update

다음 명령어를 사용하면 local 저장소의 모든 branch의 원격 저장소 정보를 update해주게 된다.

$ git fetch

git fetch의 경우, 현재 checkout된 branch의 원격 저장소 정보만을 update한다.

다시 말해, git remote update는 모든 branch에 대해 fetch를 진행하는 셈이다.
실제로 git remote update 명령어를 입력하게 되면 origin을 fetch한다는 status가 표시된다.

git fetch -p: 삭제된 원격 저장소 branch 정보도 가져오려면

왜인지는 모르겠지만, git remote update 명령어를 통해서는 원격 저장소에서의 삭제 여부를 확인할 수 없다.
이를 확인하기 위해서는

$ git fetch -p

명령어를 입력하면 된다고 한다. p는 prune의 줄임말.

git branch: local와 remote에 어떤 branch가 있는지 알고 싶다면

$ git branch -r # remote에 저장되어 있는 branch 목록을 보여준다
$ git branch -l # local에 저장되어 있는 branch 목록을 보여준다
$ git branch -a # all, 즉 remote와 local 모두에 저장되어 있는 branch 목록을 보여준다

그동안 -l 옵션을 list의 약자라 생각해 branch의 list를 보여주는 줄 알았는데, local의 줄임말이었다.

실제로 적용해보면 다음과 같이 -r 옵션을 적용할 때는 origin/*으로 branch가 표시되고, -a일 때는 remotes/origin/* 형식으로 표시되는 것을 확인할 수 있다.

git checkout -t: remote branch를 local로 가져오고 싶다면

$ git checkout -t origin/{branch_name}

가져오고 싶은 remote branch는 git checkout -t 명령어를 통해 이름 그대로 가져올 수 있다.
-t 옵션은 track의 줄임말로, 원격 저장소의 branch를 추적(track)하는 새로운 branch를 만든다고 생각하면 된다.

$ git checkout -b {new_branch_name} [origin/{branch_name}]

만약 remote branch의 이름을 변형해 가져오고 싶다면 -b 옵션을 사용하면 된다.
대신 뒤에 원격 저장소의 어느 branch를 가져오는지를 작성해줘야 한다. 해당 부분은 optional이라 적어주지 않으면 현재 branch에서 new_branch_name이라는 새로운 branch가 파생된다.

참고 자료

https://cjh5414.github.io/get-git-remote-branch/
https://blog.naver.com/vefe/221931451289
https://stackoverflow.com/questions/17128466/why-do-i-see-a-deleted-remote-branch

profile
Shy-but-passionate fast-learner

0개의 댓글