Image
CI\CD/Git Remote

[Git Remote] Git Remote에 저장된 브랜치 관리하기 : 브랜치 확인, 브랜치 가져오기

GitHub에 저장된 브랜치 확인하기

GiHub에 저장된 브랜치는 git branch -r 명령어를 통해 확인 가능하다.

 

예를 들어 GitHub url에 대한 alias를 origin-ssh로 지정한 후, 브랜치를 main, master 두개를 만들었다면 다음과 같이 출력된다.

$ git branch -r

  origin-ssh/main
  origin-ssh/master

 

 

GitHub branch 가져오기

GitHub에 저장된 브랜치는 git switch [branch name]을 통해 가져올 수 있다.

 

git switch [branch name] 을 하면 git은 먼저 로컬에 브랜치가 있으면 해당 브랜치로 스위치하고, 없으면 remote(Github)에서 해당 브랜치를 가져온다.

$ git branch -d main  ### git branch 삭제
$ git switch main       
'main' 브랜치가 리모트의 'main' 브랜치를 ('origin-ssh'에서) 따라가도록 설정되었습니다.
새로 만든 'main' 브랜치로 전환합니다

그림1. git switch 를 이용해 remote 브랜치 가져오기

 

 

 

GitHub branch를 트래킹하는 브랜치로  checkout 하기

GitHub에 저장된 브랜치를 가져올 때 로컬에 해당 브랜치를 트래킹하는 브랜치가 만들어진다. 

 

예를 들어 origin에 master brach를 git switch를 통해 가져오면 Local에는 origin/master와 master 브랜치가 생성된다. 이 때 우리가 작업하는 브랜치는 master 브랜치이다.

 

그릠2. git checkout

 

origin/master브랜치로 전환하기 위해서는 git switch는 사용할 수 없다. git switch는 로컬 브랜치만을 위한 명령어이기 때문이다. 만약 사용하면 다음과 같이 "fatal: a branch is expected, got remote branch 'origin/master'" 오류가 뜬다.

$ git switch origin/master
fatal: a branch is expected, got remote branch 'origin/master'

 

따라서 remote branch를 트래킹 하는 브랜치로 체크아웃 하기 위해서는 git checkout origin/master 명령어를 사용해야 한다.

git checkout origin/master

 

 

git fetch 사용해 GitHub Branch 를 트래킹하는 브랜치 최신 버전으로 업데이트하기

위에서 git checkout으로 Remote Branch를 트래킹하는 브랜치를 checkout하면 문제가 있다. 바로 remote branch를 트래킹하는 브랜치가 remote의 커밋이 업데이트 되었을 때 업데이트가 안되는 문제이다.

그림3. git fetch

 

 

이를 최신 버전으로 업데이트 하기 위해서는 git fetch 명령어를 사용해야 한다. git fetch 나 git fetch [alias]를 사용하면 Remote Repository의 최신 커밋으로 Remote Branch를 트래킹하는 모든 브랜치들이 업데이트 된다.  예를 들어 git fetch origin 과 같이 사용할 수 있다.

git fetch
git fetch [alias]

 

만약 하나의 브랜치만 업데이트 하고 싶다면 git fetch [alias] [branch name]를 사용하면 된다. git fetch origin master 과 같이 사용할 수 있다.

git fetch [alias] [branch name]

 

그림4. git fetch 사용 시 결과

 

반응형

 

이 글의 저작권은 '조세영의 Kotlin World' 에 있습니다. 글, 이미지 무단 재배포 및 변경을 금지합니다.

 

 

Kotlin, Android, Spring 사용자 오픈 카톡

오셔서 궁금한 점을 질문해보세요!
비밀번호 : kotlin22

open.kakao.com