[Git] workflow

한결·2023년 4월 15일
0

Github

목록 보기
12/14

workflow

  • Branch와 원격 저장소를 이용해 협업을 하는 두 가지 방법
    1. 원격 저장소 소유권이 있는 경우 -> Shared repository model
    2. 원격 저장소 소유권이 없는 경우 -> Fork & Pull model

Shared repository model

  • 원격 저장소가 자신의 소유이거나 Collaborator로 등록되어 있는 경우
  • master 브랜치에 직접 개발하는 것이 아니라, 기능별로 브랜치를 따로 만들어 개발
  • Pull Request를 사용하여 팀원 간 변경 내용에 대한 소통 진행
  1. 소유권이 있는 원격 저장소를 로컬 저장소로 clone 받기

  1. 사용자는 자신이 작업할 기능에 대한 브랜치를 생성하고, 그 안에서 기능을 구현

  1. 기능 구현이 완료되면, 원격 저장소에 해당 브랜치를 Push

  1. 원격 저장소에 각 기능의 브랜치가 반영됨

  1. Pull Request를 통해 브랜치를 master에 반영해달라는 요청을 보냄

  1. 병합이 완료된 브랜치는 불필요하므로 원격 저장소에서 삭제

  1. 원격 저장소에서 병합이 완료되면, 사용자는 로컬에서 master 브랜치로 switch

  1. 병합으로 인해 변경된 원격 저장소의 master 내용을 로컬에 Pull

  1. 원격 저장소 master의 내용을 받았으므로, 기존 로컬 브랜치 삭제 (한 사이클 종료)

  1. 새 기능 추가를 위해 새로운 브랜치를 생성하며 지금까지의 과정을 반복

Fork & Pull model

  • 오픈소스 프로젝트와 같이, 자신의 소유가 아닌 원격 저장소인 경우
  • 원본 원격 저장소를 그대로 내 원격 저장소에 복제 (이러한 행위를 Fork라고 함)
  • 기능 완성 후 복제한 내 원격 저장소에 Push
  • 이후 Pull Request를 통해 원본 원격 저장소에 반영될 수 있도록 요청함
  1. 소유권이 없는 원격 저장소를 fork를 통해 내 원격 저장소로 복제

  1. fork 이후, 복제된 내 원격 저장소를 로컬 저장소에 clone

  1. 이후에 로컬 저장소와 원본 원격 저장소를 동기화 하기 위해 연결

  1. 사용자는 자신이 작업할 기능에 대한 브랜치를 생성하고, 그 안에서 기능을 구현

  1. 기능 구현이 완료되면, 복제 원격 저장소(origin)에 해당 브랜치를 Push

  1. 복제 원격 저장소(origin)에 브랜치가 반영됨

  1. Pull Request를 통해 origin의 브랜치를 upstream에 반영해달라는 요청을 보냄

  1. upstream에 브랜치가 병합되면 origin의 브랜치는 삭제

  1. 이후 사용자는 로컬에서 master 브랜치로 switch

  1. 병합으로 인해 변경된 upstream의 master 내용을 로컬에 Pull

  1. upstream의 master 내용을 받았으므로, 기존 로컬 브랜치 삭제(한 사이클 종료)

  1. 새로운 기능 추가를 위해 새로운 브랜치를 생성하며 위 과정을 반복

0개의 댓글