-
Notifications
You must be signed in to change notification settings - Fork 5
Upstream Downstream & fork
YUNHO edited this page Jan 1, 2023
·
1 revision
upstream과 downstream은 상대적인 개념
입니다.
origin과 local을 기준으로 생각하면 origin이 upstream, local이 downstream이 됩니다. push와 pull을 기준으로 생각했을 때 origin으로부터 local로 흐르는 관계
가 형성되기 때문입니다. (ex: local에서 origin으로 push한다. origin에서 local로 pull한다.)
예를 들어, git push -u origin main
명령어에서 u
는 -set-upstream
옵션의 줄임으로 upstream으로 설정한다는 뜻입니다.
Fork와 Upstream는 어떤 관계도 비슷합니다.
결론부터 말하자면, original repository이 upstream
되고, copy repository(내가 forked한 repository)이 origin
이 됩니다. local과 origin의 관계
에선 local이 downstream, origin이 upstream이었는데, fork한 repository를 기준
으로 보면 origin이 downstream, 원본 remote가 upstream이라는 관계가 됩니다. 그래서 GitHub로 협업을 할 때는 보통 다음과 같은 프로세스 거처야 합니다.
1. '원본 remote repository'(upstream)를 깃허브에서 fork
2. 'fork한 remote repository'(origin)를 깃 클라이언트로 clone
3. 기능을 완성할 때까지 반복
- 'clone한 repository'(local)에 commit
- local에서 origin으로 push
4. upstream에 반영하기 (PR: Pull Request)
- PR을 등록하기 전 upstream에 바뀐 내용이 없는 경우
- origin에서 upstream으로 PR
- PR을 등록하기 전 upstream에 바뀐 내용이 있는 경우
- upstream을 local로 pull
- local에서 origin으로 push
- origin에서 upstream으로 PR
git remote add {브랜치명} {repository_url} // 브래치명 생략시 main으로 되는 듯?
git fetch upstream {브랜치명} // 브래치명 생략시 main으로 되는 듯?
# local의 main으로 chekout 후 merge
git checkout main
git merge upstream/main
# 아니면 rebase 사용
🔍 참고자료
🏠 Home
- FE : MSW를 활용한 API Mocking
- FE : useRoutes로 라우팅 관리하기
- FE : UI/UX 용어 정리
- FE : Storybook 활용(feat. Chormatic을 활용한 협업)
- FE : 상태관리 migration (redux-→ react context api)
- FE : CORS란?(우리가 겪은 문제들)
- FE : 도메인별 Api 파일 구분 및 공통 에러 핸들러 생성
- FE : 사용자에게 API상태를 UI로 알려주자
- BE : java stream API 를 이용해 코드 가독성 제고
- BE : AOP를 활용해 특정 DTO에 정보 추가
- BE : DB 직접 조회를 줄이기 위한 노력