본문 바로가기

Git,Github

Origin/master(원격추적 브랜치) 알아보기

제일 중요한 점 :
Git과 Github에서 관리되는 Repository는 다르다는 것

 

본인이 프로젝트 중간에 투입이 된다면, Git clone을 사용하게 된다.

말 그대로 프로젝트 코드들과 Git 관련 정보들을 복제해서

내 로컬 컴퓨터에 가져오는 것인데, 여기서 조금 당황할만한 상황이 있다.

 

관련 자료는 유데미 Colt 선생님 예제에서 가져왔다.

 

해당 깃허브 관련 내용이다. 브랜치가 총 6개 있다고 나온다.

그래서 룰루랄라 클론을 하고 git branch를 확인하는 순간

 

어?

난 분명히 Git clone으로 전부 가져왔는데 왜 브랜치는 같이 안왔지??

라고 착각하기 쉽다.

 

그런데 잘 생각해보면 git branch 명령어는 내 local환경에 있는 브랜치를 보여달라는 명령어이다

git clone을 해오면, 관련 정보들 역시 오는건 맞지만, 각각의 local 레포지토리와는

엄연하게 구별이 된 것이다.

 

그럼 원격 브랜치는 어떻게 접근해야 하나??

간단하다. git branch -r 명령어를 입력하면 된다.

 

 

그러면 origin에 있는 브랜치들이 쭉 나온다.

checkout 명령어로 원격으로 참조되는 origin/브랜치들로 이동할수도 있다.

그러면 당연히 저번 포스팅에서 얘기한 Detached HEAD현상이 또 발생할 것이다.

 

그럼 여기서 진짜 문제는, 내 local에서는 어떻게 origin에 있는 브랜치들과 연결시키느냐인데...

기본적으로 로컬의 main 브랜치와 원격의 origin/main은 연결되어 있다.

이름이 같기 때문이다.

 

그럼 나머지 브랜치들은, 간단하게 git switch 명령어를 이용하면,

예를들어 위의 브랜치들 중에 git switch fantasy 명령어를 입력하면, 내 로컬에

fantasy브랜치가 생기고, 자동으로 동일한 이름인 origin/fantasy 원격브랜치를 추적하도록 설정된다.

 

그럼 이렇게 친절하게 설명이 나오게 된다.

 

물론 local과 원격의 브랜치 이름을 다르게 설정할수도 있다.

그러나, 엄청난 혼란을 가져오기 때문에 왠만해서는 이름은 통일하는게

정신건강에 좋다 

(농담 아니고 브랜치 꼬여서 1시간을 날려버린적도 있다)

결론

 

그냥 무작정 깃 명령어만 치면
이런 상황을 맞딱드리면 굉장히 당황한다.

 

Git 과 Github는 엄연히 다르다
로컬과 리모트도 다르다

 

는 사실을 인지하고 깃 사용법을 익혀야 한다.