Forking Workflow
프로젝트에 참여하는 모든 팀원들이 각자의 Repository애 Upstream Repository
를 복제하여 개개인별 Repository를 가지고 프로젝트 협업을 이어나가는 방식
Collaboration 방식과는 다르게 중앙 Upstream 저장소에 Push 하는 것이 아닌,
자신의 저장소
에 푸쉬하고 Upstream에 다시 Push 하는 과정을 한번 더 걸치게 됨
Upstream 관리자는 협원팀원들의 PR을 Merge 할지 하지 않을지 정하게 됩니다.
개념
- Upstream : 중앙 원격 저장소
- remote Repository : 자신의 원격저장소
- local Repository : 자신의 PC의 저장소
Fork ( Upstream => Remote => Local )
Upstream 에서 나의 Remote Repository 에 복제하여 똑같은 내용의 저장소가 복제 됨 개인 저장소로 운영 되어 Upstream과 별개로 독립적으로 사용됩니다.
Froking
Upstream => Remote
- 중앙저장소(Upstream Repository)를 나의 원격 저장소(Remote Repository)로 복제
- Upstream Repository에 우측 상단
Fork
버튼 선택
- Remote Repository 위치 생성
- 꼭 체크를 해지 하시길 바랍니다.
Remote => Local
- Remote Repository에 생성 된 Fork Repository
- 원격 저장소(Remote Repository)를 내 PC에(Local Repository)로 복제
- Code 를 선택 후 Git Desktop을 눌러
Clone
을 진행하여
- 일반 Repository와 다른 아이콘의 Repository가 생성 됩니다.
Branch 생성
Local Repository Branch 생성
- Main이 아닌 Develop 1.0에서 브랜치 분기를 생성 합니다.
- Remote Branch 의 Develop 1.0을 선택하여 새로운 Branch 를 생성합니다.
- 이때 Upstream을 건들지 않도록 주의 하셔야 합니다.
Commit (Branch Local => Branch Remote)
- 새로운 변경사항이 생기면 Commit Message를 작성하여
- Local Branch 에서 Remote Branch 로 commit 합니다.
- Push를 선택하여
Remote Branch
Push 합니다. (Local => Remote)
- PR을 하여 Remote에
Merge
합니다.
- Merge시에는
main
이 아닌꼭 Develop
에 Merge 합니다. - Create Pull Request 하여 Merge를 적용하러 Github 사이트에 자동으로 연결 됩니다.
Merge (Remote Repository)
- Merge pull request를 눌러
Confirm merge
를 선택합니다.
Merge Upstream (Remote => Upstream)
-
Remote Develop
에Merge
한 내용을Upstream
에 PR을 합니다. - 해당 내용은 Upstream 관리자의 승인이 필요하므로 꼭 같이 진행 해주셔야 합니다.
- Github Remote Repository 에 접속합니다.
-
Remote Develop Branch
에서 Compare & pull request 를 선택합니다.
- 노란색 표시는
Upstream Repository
, 빨간색은Remote Repository
- 해당 Repo들의 Branch를 선택하여
PR
을 생성합니다.
- 별다른 충돌이 없다면 아래와 같이 초록색의 버튼이 보입니다.
- 이때 부터는
Upstream
관리자의 영역입니다.
마치며
다음 편은 Upstream 에서 Merge 승인 이후 전체 팀원에게 브랜치를 최신화 하는 방법을 안내하겠습니다.