git branch management strategy

혜인·2022년 4월 1일
0

브랜치 전략

여러 개발자가 협업하는 환경에서 git 저장소를 효과적으로 활용하기 위한 work-flow
브랜치의 생성,삭제,병합이 자유로운 git의 유연한 구조 활용해서
소스관리를 할 수 있다

브랜치 전략이 없으면

  • 동료 개발자가 만든 브랜치나 커밋에 대해 알기 어려움

자주 쓰이는 브랜치 전략

git- flow

항상 유지되는 2개의 메인 브랜치와
역할이 완료되면 사라지는 3개의 보조브랜치로 구성

  • 메인 브랜치 : 항상 유지됨
    😎 master : 제품으로 출시될 수 있는 브랜치
    👀 develop : 다음 출시 버전을 개발하는 브랜치
  • 보조 브랜치 : merge되면 사라짐
    🤳 feature : 기능을 개발하는 브런치
    🎂 release : 이번 출시 버전을 준비하는 브랜치
    ✔ hotfix : 출시 버전에서 발생한 버그를 수정하는 브랜치

git flow 개발 프로세스

  • 개발자는 develop 브랜치로 부터 개발할 기능을 위한 feature 브랜치를 만듬
  • feature 브랜치에서 기능을 만들다가, 기능이 완성되면 develop 브랜치에 merge한다.
  • 이번 배포 버전 기능이 develop 브랜치에 모두 merge 되면, QA를 위해 release 브랜치 생성
  • release 브랜치에서 오류 발생하면 release 브랜치 내에서 수정하고
    QA 끝났으면 배포하기위해 master로 merge.
    bugfix가 있었으면 반영하기위해 develop 브랜치에도 merge
  • 만약 master에서 버그가 발생하면 hotfix 브랜치를 만든다.
  • hotfix브랜치에서 버그 픽스 끝나면, develop과 master브랜치에 각각 merge

git-flow 특징

  • 주기적으로 배포하는 서비스 적합
  • 가장 유명한 전략이기때문에 IDE가 지원

github-flow

  • 기능 개발 버그픽스 혹은 어떤 이유로든 branch 생성
    gitflow 처럼 체계적인 분류는 없어서 이름은 의도를 잘 드러내도록 작성
  • 개발하고 커밋메시지 상세하게 작성
  • 완료되면 Pull Request 생성
  • 리뷰와 토의
  • 리뷰가 끝나면 실제 서버에 배포
  • 문제 없으면 master에 merge 하고 push 즉시 배포 (배포 자동화 권장)

github-flow 특징

  • 단순하여 git 처음 적하는 사람에게도 유용
  • CI 지속적 통합 CD 지속적 배포 가 자연스럽게 이루어짐

0개의 댓글