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 DevelopMerge한 내용을 Upstream에 PR을 합니다.
  • 해당 내용은 Upstream 관리자의 승인이 필요하므로 꼭 같이 진행 해주셔야 합니다.

  • Github Remote Repository 에 접속합니다.
  • Remote Develop Branch에서 Compare & pull request 를 선택합니다.

  • 노란색 표시는 Upstream Repository , 빨간색은 Remote Repository
  • 해당 Repo들의 Branch를 선택하여 PR을 생성합니다.

  • 별다른 충돌이 없다면 아래와 같이 초록색의 버튼이 보입니다.
  • 이때 부터는 Upstream 관리자의 영역입니다.

마치며

다음 편은 Upstream 에서 Merge 승인 이후 전체 팀원에게 브랜치를 최신화 하는 방법을 안내하겠습니다.