기타/🚘 Git

Github # 로컬에서 만들어준 브랜치가 Github에 안보일 때

둥굴둥굴둥굴레차 2021. 9. 1. 18:19

 

 

간단한 Gitflow연습 # branch생성-checkout-merge-push까지!

맨 처음 Github 레포지터리를 생성한 후 로컬에 원격저장소를 clone하면 master 브랜치 밖에 존재하지 않는다. 현재 내가 가지고 있는 브랜치 목록을 보려면 아래의 명령어 사용! $ git branch develop 브랜

pythontoomuchinformation.tistory.com

 

위 게시글에 이어서..

 

local에서 develop 브랜치를 생성했다.

그래서 로컬에서 아래 명령어를 실행해주면 master와 develop브랜치가 잘 만들어졌다고 보이는 상황.

$ git branch

 

그러나 막상 Github에 들어가면 develop브랜치가 생성된 것이 반영되지 않았다.

 

여기도 develop 브랜치가 안보이고..
여기서 봐도 master브랜치 뿐이다.

 

 

이는 로컬에서만 branch를 생성해줬기 때문에 당연히! 원격 저장소인 Github엔 보이지 않는 상황이다.

 

 

아래의 명령어를 사용하여 develop branch를 원격 저장소에도 생성해주자.

$ git push origin develop

 

여기 까지만 수행해도 Github에 develop 브랜치는 잘 보인다.

하지만 아래의 명령어를 통해 local branch를 remote branch와 연동하는 작업도 수행하자!

즉, 앞으로 develop 브랜치에 push 명령어를 내리면 자동으로 origin의 develop 브랜치로 푸시하겠다는 의미.

origin은 develop 브랜치가 있는 위치를 나타낸다.

$ git push --set-upstream origin develop

혹은

$ git push -u origin develop

 

 


 

부가적인 설명을 더 해보자면,

처음 remote 저장소를 local에 clone 하게 되면

자동으로 local의 master 브랜치를 remote 저장소와 연결되는 origin/master 브랜치의 tracking branch로 만든다고 한다.

 

그래서 master 브랜치는 는 remote 저장소인 Github에서 잘 보이는 거고..

 

반면에 local에서 내가 $ git branch develop으로 만들어 줬던 develop브랜치는

tracking branch로 만들어진 것이 아니기 때문에 remote 저장소에 반영이 안 된다.

 

그렇기 때문에 위 명령어를 사용하여 local 브랜치를 remote 브랜치(default)로 만들어 tracking이 가능하게 해 주었다.

 

[참고] tracking branch란?
tracking branch는 remote branch와 직접적인 연결고리가 있는 local branch

 

 

 

🔽 REFERENCE

 

What does '--set-upstream' do?

What does git --set-upstream do? I tried to understand it by reading the git manual, but I didn't quite get it.

stackoverflow.com

 


 

해결된 모습

 

이제 여기서도 보이고
여기서도 보인다!

 

 

아래 명령어를 입력하면 local과 remote의 branch를 모두 보여준다.

$ git remote show origin


 

branch 삭제하기

 

모든 pull request가 종료되어 merge까지 완료되었으면 해당 branch를 삭제해주자.

우선 해당 branch를 삭제하기위해선 다른 branch로 checkout한 후 진행해야 한다.

(여기선 merge까지 완료되어 삭제할 branch를 feature branch라 가정하자.)

$ git checkout develop
$ git branch -d feature

 

만약 commit 이력이 여전히 feature에 남아있는 경우엔 삭제되지 않는다. 이럴 땐 강제로 삭제해주자.

$ git branch -D feature

 

또한, local의 feature branch만 삭제하는 것이 아니라 원격 저장소의 feature branch도 삭제해줘야 한다.

아래 명령어를 통해 remote branch도 삭제해주자.

$ git push origin :feature