1. Fork
- 남의 레포지토리를 그대로 나의 레포지토리로 복제해오는 방법
- Fork해온 시점부터 원본 레포지토리와 별도의 레포지토리로 취급됨

2. Fork의 일반적인 작동 방식
- Fork를 통해 남의 레포지토리(원본)를 나의 레포지토리로 복제해온다.
- git clone을 통해 나의 local로 복제한다.
- 작업 후 push를 통해 나의 레포지토리(fork 해온 복제본)에 반영한다.
- Pull & Request(PR)를 통해 남의 레포지토리(원본)에 작업 내용 반영을 요청한다.
- PR이 승인되면 정상적으로 merge되고 나의 작업 내용이 원본에 반영된다.
→ 이 방식은 오픈소스에 기여하는 방식과 매우 비슷하다.
3. Upstream branch
Upstream branch란?
- fork해온 베이스 저장소의 메인 브랜치와 연결되어 있는 브랜치.
- Upstream branch를 통해 fork 이후에 발생한 베이스 저장소의 변경 사항들을 현재 작업 중인 브랜치로 가져 올 수 있음.
How to?
$ git remote add upstream "베이스 저장소 URL"
- 베이스 저장소의 변경사항을 내 저장소의 Upstream (branch)로 가져오기
$ git fetch upstream
- Upstream의 코드를 현재 작업 중인 브랜치에 병합
$ git merge upstream/"브랜치이름"
- 병합된 커밋들을 내 저장소로 push
- 내 저장소의 변경사항을 PR 요청해서 베이스 저장소에 내 작업 반영
인용 자료 출처
코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)
(무료) 매우쉽게 알려주는 git & github
모두를 위한 깃&깃허브 by NomadCoders