풀스택 개발자 양성과정 최종프로젝트(북유럽 : Book U Luv) 버전관리 업무정책(git, github)

황인성·2023년 7월 17일
1
post-thumbnail

git-flow나 Trunk-based를 사용하지 않는다는 가정 하에 작성된 글입니다.

버전관리 사전세팅

  1. Git 레포지토리 생성 (ex. 레포지토리 이름 : Book_U_Luv)
  2. 팀원들 컨트리뷰터 / 콜라보레이션으로 팀원추가
  3. 각자 개인 브랜치 생성.(이름 이니셜 2글자로 예를들면 황인성 => is)
  4. 새로 만드는 프로젝트에 gitignore(JAVA, Intellij)잘 구성되어있는지 확인.
  5. 생성 후 기본세팅 마치고 팀원들은 각자 로컬저장소(개인 노트북 혹은 컴퓨터)에 clone으로 저장함.

기능개발 단계

⚠️개인 브랜치 내에서 작업 시에⚠️

(본인 말고 다른사람이 브랜치에 COMMIT / PUSH / REVERT 등 건드리지 않았다는 전제 하)

  1. 작업 시작 전(현재 본인 '원격' 브랜치에 체크아웃 함)
  2. 새로운 작업 시작하기 전에는 항상 '로컬' 브랜치 업데이트(ex. git pull origin is)를 해야함.(인텔리제이 상에서 GUI로 하는게 쉬움.)
  3. 작업을 마치면 본인의 브랜치로 commit/push함.
    (ex. git commit -m "commit message")
    (ex. git push origin is)
  4. 푸쉬 잘 되었는지 확인 마치면 새로운 작업 시작하기 전에는 항상 업데이트(ex. git pull origin is)를 해야함.(인텔리제이 상에서 GUI로 하는게 쉬움.)

기능개발 시에 개인 브랜치 내에선 위 1~4 항목들의 무한반복.

병합(merge) 단계

⚠️main브랜치에 병합(merge)이 필요할 때엔⚠️

  1. 각자 개인 브랜치에 버전내용 최신화 확인.
  2. main 브랜치에 병합 할 목적이기 때문에 원격저장소의 main브랜치에 체크아웃(git checkout main) 후 main브랜치 업데이트(git pull origin main)
  3. 내 브랜치(is)에 있는 내용을 main 브랜치로 병합(git merge is)
  4. 다른 브랜치(ex. cg 혹은 wy)가 최신화 되어있다면 이 단계에서 main에 다른 브랜치들 추가로 병합 가능.
  5. 중간에 충돌(conflict)이 발생하면 병합 버튼을 눌러서 충돌(conflict) 해결
    ✔️모든 파일에 대하여 지울 코드 지우고 채택할 코드 채택해서 무조건 충돌사항(conflict)이 없게 만들어야 다음단계 진행 가능.
    ✔️main에서 병합 작업시에 내 변경사항과 상대방의 변경사항 중 수락하게 되는 경우,
    내 변경사항 => 현재 main브랜치에 있는 내용.
    상대방의 변경사항 => main브랜치 이외의 브랜치로부터 온 내용들.
    ✔️main의 내용과 새로 병합되는 개인브랜치의 내용 중 수정부분이 겹치지 않는다면 충돌이 나지 않으므로 정상적으로 진행하면 됨.
  6. 현재 main은 로컬에서만 변경사항이 적용된 상태이기 때문에 원격 저장소로 push 해줘야함.(git push origin main)
  7. 병합 끝.
profile
문제 해결을 위해 끊임없이 파고드는 걸 좋아합니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

아주 유용한 정보네요!

답글 달기