반응형
안녕하세요~
오늘은 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의 준말이기도 하다.
- origin과 local을 기준으로
Fork
- github에서 오픈소스 프로젝트에 기여하거나, 협업을 진행할 때 fork를 이용하게 됩니다.
- [ 소유자의 remote를 말할 때 upstream ], [ 내가 포크한 remote를 말할 때 origin ]이라는 용어를 사용합니다.
- 기존과는 다르게 upstream과 downstream이 정해집니다.
- fork한 repository를 기준으로 origin이 downstream, 원본 remote가 upstream
- 따라서 다음과 같은 프로세스가 필요합니다.
- 소유자의 remote repository(upstream)를 깃허브에서 fork
- fork한 remote repository(origin)를 깃 클라이언트로 clone
- 기능을 완성할 때까지 하위의 작업을 반복
- clone한 repository(local)에 commit
- local에서 origin으로 push
- upstream에 반영
- PR을 등록하기 전 upstream에 바뀐 내용이 없는 경우
- origin에서 upstream으로 PR(Pull Request)
- PR을 등록하기 전 upstream에 바뀐 내용이 있는 경우
- upstream을 local로 pull
- local에서 origin으로 push
- origin에서 upstream으로 PR(Pull Request)
- PR을 등록하기 전 upstream에 바뀐 내용이 없는 경우
[ 참고 URL ]
위의 블로그에서 정말 자세하게 정리해 주셔서
이해할 수 있었습니다 : )
감사합니다 👏 👏
반응형