Git

깃허브 팀프로젝트 관리 다양한 상황극

재원쓰 2022. 9. 18. 15:37

'프로젝트X'를 A(리더), B, C가 함께 작업을 할 것이다.

A 작업자(리더)

  • 프로젝트 깃헙에 올리기. git ignore 설정하기(node_module은 커밋되지 않게)
    • 프로젝트 폴더로 들어가서 'git init'
    • git config 설정 하기(github 이름, 이메일)
    • git remote add origin [URL]
    • git push origin main
  • 작업자 B와 C를 초대하고 하위로 권한 설정하기
  • 브랜치 파기(develop, 메인-작업자 A, 리스트-작업자B, 마이페이지-작업자C)

작업자 B - blackbeen30@nate.com

작업자 C - jenyglee_30@nate.com

 

B 작업자(리더)

  • 작업자 B - 커밋하기
  • 작업자 B - (커밋 실수했다!) 커밋하기 이전으로 돌린다. 이때 작업했던 것을 날리면 안된다.
  • 작업자 B - 푸쉬하기
  • 작업자 B - (푸쉬 실수했다!) 푸쉬를 되돌린다. 이때 커밋했던 기록들이 그대로 있어야 한다.
  • 작업자 B - 작업 중간에 공유컴포넌트를 만들어서 다른 작업자들에게 공유해줘야 한다. 공유컴포넌트 폴더에 추가한 파일만 푸시하고 develop 브랜치에 PR을 보낸다. A에서 PR을 수락하고 머지한다. C에서 풀 받아서 공유컴포넌트를 사용한다.
  • A가 중간에 공유컴포넌트가 추가되었다고 풀받으라고 한다. develop에서 추가된 공유컴포넌트 파일만 쏙 받아온다.
  • B의 리스트 작업이 끝났다. master 브랜치에 PR 보내기
  • B는 작업이 끝난게 아니였다. PR 되돌리기

A 작업자(리더)

  • A가 마이페이지 PR에 코멘트를 남긴다.
  • B가 수정후 푸쉬했다. 다시한번 확인해보고 PR을 수락한다. 이때 conflict가 떳다!(기존 master에 리스트 페이지 작업이 있었던 것이였다.) 충돌난 코드를 정리하고 다시 푸쉬한다.
  • PR 정리하고 B의 브랜치를 삭제한다.
  • B 작업자를 프로젝트에서 뺀다.

C 작업자

  • 리스트 브랜치(B)가 삭제된 것을 업데이트 한다.
  • 작업 중간에 B작업자가 끼어들어서 어떤 부분을 수정후 푸쉬했다. 이후 C작업자가 풀 받았더니 충돌이 발생한 것 같다.
  • 마이페이지 작업을 끝내고 master 브랜치에 PR을 보낸다.
  • 직접 머지를 진행한다.
  • 직접 마이페이지 브랜치를 제거한다.

A 작업자(리더)

  • 리스트 브랜치(B)와 마이페이지 브랜치(C)가 삭제된 것을 업데이트 한다.
  • 메인 작업을 마치고 PR을 하지 말고 바로 master 브랜치에 머지한다.
  • 메인 브랜치를 삭제한다.
  • master에서 프로젝트를 열고 모든 개발이 잘 반영되었는지 확인한다.