본문 바로가기
개발 도구/Git

브랜치(branch)를 깃허브(github)에 push하기

by ♥︎해이나♥︎ 2022. 11. 21.
반응형

한동안 로컬 레포지토리에서 작업한 내용을 깃허브에 업로드하지 않았다. 예전에는 git push 명령어 하나만 쓰면 자동으로 업로드가 되었었는데... 이제 로컬 레포지토리에는 브랜치도 생겼다. 어떻게 해야 하지? 산을 넘으면 또 산이 기다리고 있다. 하지만 이번 산도 잘 넘을 수 있을 것이다.

 

각 브런치를 깃허브에 push하기

 

깃허브에 브랜치 작업내용 push하는 방법

premium 브랜치에서 아직까지 했던 커밋 리스트를 확인해보았다. 아래 이미지에서 표시하고 있는 것들의 의미는 다음과 같다.

 

  • (HEAD -> premium) : HEAD는 premium 브랜치의 최신 커밋을 가리키고 있다.
  • (main) : 로컬 레포지토리에서 main 브랜치로 작업한 최신 커밋이다.
  • (origin/main) : main 브랜치의 해당 커밋까지 깃허브에 업로드되어 있다.
  • (tag: tag01) : 해당 브랜치에 tag01 이라는 이름의 태그가 달려있다.

 

git history
git 커밋 히스토리 확인

 

가장 먼저 브랜치를 main으로 변경하고 git push 명령어를 사용해서 모두 깃허브에 업로드해 주었다.

 

git checkout main 
git push

git push

 

업로드를 완료하고 나서 다시 커밋 리스트를 확인해 보면, HEAD와 origin/main이 모두 같은 버전을 가리키고 있는 것을 확인할 수 있다. 이제 로컬 레포지토리와 리모트 레포지토리의 내용이 똑같아진 것이다.

 

git 커밋 히스토리 확인

 

깃허브에 처음으로 push하는 브랜치라면?

브랜치가 새로 생겼지만 별 거 없군? 이라고 생각했다. 그래서 이번에는 premium 브랜치의 내용도 깃허브에 올려두고 싶어서 동일한 과정을 반복했는데... 음? 오류가 발생했다.

 

git push 오류

 

현재 브랜치가 업스트림 브랜치를 가지고 있지 않다고...?

프로젝트는 이미 업로드가 되어 있지만, 프리미엄 브랜치를 이용해서 리모트 레포지토리로 옮기는 것은 처음이기 때문에 이러한 메세지가 출력된 것이다. 이렇게 새로운 브랜치로 첫 push를 할 때에는 아래와 같은 커맨드를 사용해주어야 한다. 

 

git push --set-upstream origin [브랜치명]

git push --set-upstream origin 브랜치명

 

위 옵션은 앞으로 브랜치 작업을 트래킹하기 위한 정보 설정을 하기 위함이고, 이렇게 하면 리모트 레포지토리에도 premium 브랜치가 생긴다. 이후부터는 git push라고만 작성해도 된다.

 

깃허브에서 브랜치(branch) 정보 확인하기

깃허브 사이트(https://github.com)로 이동해서 해당 레포지토리로 이동했다.

 

깃허브 레포지토리

 

2 branches 라고 브랜치 갯수가 표시되어 있었다. 

 

깃허브 브랜치 확인

 

브랜치 부분을 클릭하니 main, premium 으로 두 개의 브랜치명이 제대로 표시되고 있었다. 제대로 push가 되었군!


git 커밋 히스토리 확인

 

다시 터미널로 돌아와서 이번에는 premium 브랜치 상태에서 커밋 히스토리를 확인했다. 역시 최신 버전으로 origin이 잘 표시되고 있었다. 여기까지 공부를 하고 나면 HEAD와 브랜치의 관계가 혼란스러운 분들이 계실거라 생각한다. 다음 포스팅에 이어서 정리하도록 하겠다. 

반응형

댓글