Git & Github

[ Git & Github ] Upstream과 Downstream은 뭘까?

경푸 2022. 9. 22. 22:40
반응형

안녕하세요~

오늘은 upstream과 downstream에 대해서 정리하려고 합니다 : )

 

Upstream & Downstream

  • 우리가 흔히 보는 origin은 github에 존재하는 repository로 remote를 뜻합니다. 다만, remote 대신 origin이라고 명명한 것뿐입니다.
  • upstream과 downstream은 상대적인 개념
    • origin과 local을 기준으로
      • origin : upstream
      • local : downstream
    • push와 pull을 기준으로 생각해 보면
      • local에서 origin으로 흐름이 발생 : push → upstream
      • origin에서 local로 흐름이 발생 : pull → downstream
    git push -u origin main // 여기서 -u가 뜻하는 것이 upstream이며 --set-upstream의 준말이기도 하다.
    

 

Fork

  • github에서 오픈소스 프로젝트에 기여하거나, 협업을 진행할 때 fork를 이용하게 됩니다.
    • [ 소유자의 remote를 말할 때 upstream ], [ 내가 포크한 remote를 말할 때 origin ]이라는 용어를 사용합니다.
    • 기존과는 다르게 upstream과 downstream이 정해집니다.
      • fork한 repository를 기준으로 origin이 downstream, 원본 remote가 upstream
  • 따라서 다음과 같은 프로세스가 필요합니다.
    • 소유자의 remote repository(upstream)를 깃허브에서 fork
    • fork한 remote repository(origin)를 깃 클라이언트로 clone
    • 기능을 완성할 때까지 하위의 작업을 반복
      1. clone한 repository(local)에 commit
      2. local에서 origin으로 push
    • upstream에 반영
      • PR을 등록하기 전 upstream에 바뀐 내용이 없는 경우
        •  origin에서 upstream으로 PR(Pull Request)
      • PR을 등록하기 전 upstream에 바뀐 내용이 있는 경우
        • upstream을 local로 pull
        • local에서 origin으로 push
        • origin에서 upstream으로 PR(Pull Request)

 

[ 참고 URL ]

 

GitHub에서 협업을 위한 remote repository와 upstream 이해하기

Git은 현재 소프트웨어 개발에 사용되는 널리 알려진 버전 관리 시스템으로 '분산 버전 관리 시스템' 중 하나입니다. 버전 관리 시스템에서 분산이라는 말은 사용자가 원격 서버를 거치지 않고서

pers0n4.io

위의 블로그에서 정말 자세하게 정리해 주셔서

이해할 수 있었습니다 : )

감사합니다 👏 👏

반응형