본문 바로가기

Git

upstream vs origin

깃을 공부하던 중 upstream 과 origin 리모트 브랜치에 혼란이 생겨 기록한다.

 

origin 브랜치는 우리가 git clone 을 하면 자동으로 origin/master 브랜치가 생기는 것에서 익숙한 이름이다.

 

 

origin

Git 서버의 리포지토리를 Clone 하면 Git은 자동으로 origin 이라는 이름을 붙인다. 

origin 으로부터 저장소 데이터를 모두 내려받고 master 브랜치를 가리키는 포인터를 만든다.

이 포인터는 origin/master 이라는 이름이며, 수정이 불가능하다.

그리고 Git은 로컬의 master 브랜치가 origin/master 를 가리키게 한다. 이제 이 master 브랜치에서 작업을 시작할 수 있다.

 

 

 

upstream, downstream

upstream 이란 상대적인 개념이다.

 

위의 clone 한 경우, origin 브랜치가 remote 이며, upstream 브랜치이다. 그리고 local 이 downstream 이다.

origin 이 upstream!

 

반면, 개인의 리포지토리로 fork 해서 작업을 진행하는 경우,

upstream 은 원래의 리포지토리 remote 이다.

그래고 downstream 이 우리의 리포지토리로 fork 한 origin 브랜치이다.

origin 이 downstream!

 

 

 

 

https://pers0n4.io/github-remote-repository-and-upstream/

 

https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%A6%AC%EB%AA%A8%ED%8A%B8-%EB%B8%8C%EB%9E%9C%EC%B9%98

 

'Git' 카테고리의 다른 글

rebase, pull --rebase  (0) 2021.10.06
squash 머지 한 브랜치에서 계속 작업할 경우  (0) 2021.10.06
Rebase  (0) 2021.10.06
.gitignore  (0) 2020.12.11
Commit Convention  (0) 2020.11.30