Computer Science/Git

[Git] Origin VS Upstream 차이

Smile :DK 2023. 4. 16. 19:37

origin과 upstream은 공통적으로 git에서 사용되는 원격저장소(Remote Repository)의 이름을 뜻한다.

origin과 upstream은 두 저장소의 관계에 따라 정의되는 상대적인 개념이다. 절대적으로 어떤 저장소가 origin 이거나upstream이 아니다. 

 

 

origin

origin은 보통 로컬저장소(Local Repository)와 연결된 원격저장소(Remote Repository)의 기본 이름이며 보통 프로젝트를 클론(clone)하거나 'git init'명령어를 통해 새로운 로컬 저장소를 생성하면 자동으로 origin이라는 이름의 원격저장소가 생성되고, 해당 원격 저장소의 URL이 기본으로 설정된다. origin은 주로 로컬저장소와 원격저장소 간에 코드를 푸시(push)하거나 풀(pull)할 때 사용된다.

 

example)

git clone https://github.com/Dokyung-Hwang/myProject.git
cd myProject
git remote add origin https://github.com/Dokyung-Hwang/myProject.git

내 GitHub 계정으로부터 myProject라는 이름의 프로젝트를 클론(clone)하여 로컬저장소를 생성하는 예시이다. 이 때 origin은 자동으로 원격저장소의 이름으로 설정되며 이후 로컬에서 작업한 변경사항을 origin에 push/pull할 때 사용한다.

 

upstream

upstream은 보통 포크(fork)된 프로젝트에서 원본 프로젝트(Original Repository)를 가리키는 원격저장소의 이름이며 여기서의 'fork'는 다른 개발자의 원본 프로젝트를 자신의 계정으로 복제하는 것을 뜻한다. 이렇게 생성된 복제된 저장소를 'fork'라고 하고, 이 'fork'된 저장소의 원본 프로젝트를 'upstream'이라는 이름으로 등록하여 원본 프로젝트의 변경 사항을 추적하고 동기화 할 수 있다. upstream은 주로 풀 리퀘스트(PR, Pull Request)를 보낼 때 사용되며 원본 프로젝트의 변경 사항을 가져오기 위해 'git fetch' 명령과 함께 사용될 수 있다.

 

example)

git fork https://github.com/otherUserName/project.git
cd project
git remote add upstream https://github.com/otherUserName/project.git

 다른 개발자의 프로젝트를 내 GitHub계정으로 fork한 후 upstream이라는 이름으로 원본 프로젝트를 원격저장소에 등록하는 예시이다. 등록한 upstream은 원본 프로젝트의 변경사항을 추적하고 pull request를 보낼 때 사용된다. 원본 프로젝트의 변경사항을 가져오기 위해 git fetch명령과 함께 upstreamd을 사용할 수 있다.

 

 

 

 

요약

  • origin은 로컬저장소와 연결된 기본 원격저장소의 이름이며 주로 로컬저장소와의 push/pull에 사용된다.
  • upstream은 fork된 프로젝트에서 원본프로젝트를 가리키는 원격저장소 이름이며 원본 프로젝트와의 변경 사항 추적 및 동기화에 사용된다.
  • 다른 사람의 GitHub 저장소를 fork한 경우 내 GitHub가 origin이 되며 처음 fork를 시도한 저장소를 upstream이라고 부른다. origin과 upstream 모두 원격저장소이며 보통 origin과 구분하기 위해 upstream이라는 명칭을 사용한다.'

 


Ref.

https://wikidocs.net/74836 and ChatGPT

 

16) Upstream

[TOC] ## Upstream 이란 ? 다른 사람의 GitHub의 저장소를 Fork한 경우 내 GitHub가 origin이 됩니다. 여러분이 처음 fork를 시도한 저장소를…

wikidocs.net