기타

Git-flow 이해하기

sujin7837 2021. 1. 3. 16:19
반응형

Git-flow는 Git으로 개발할 때 거의 표준과 같이 사용되는 방법론입니다.

 

Git-flow는 총 5가지의 브랜치를 사용합니다.

  • master: 기준이 되는 브랜치로 제품을 배포하는 브랜치입니다. 현재 production의 상태와 일치합니다.
  • develop: 개발 브랜치로 개발자들이 각자 작업한 기능들을 이 브랜치를 기준으로 병합합니다. 현재 개발이 완료된 상태(다음 릴리즈를 위해 언제든 배포될 수 있는 상태)와 일치합니다.
  • feature: 단위 기능을 개발하는 브랜치로 기능 개발이 완료되면 develop 브랜치에 병합합니다. develop을 현재 개발 완료 상태와 일치시키면서도 다른 개발자와 conflict가 생기지 않도록 작업하기 위해 사용합니다.
  • release: 배포를 위해 master 브랜치로 보내기 전에 먼저 품질검사(QA)를 하기 위한 브랜치입니다.
  • hotfix: master 브랜치로 배포를 했는데 버그가 생겼을 경우 긴급 수정하기 위한 브랜치입니다.

master 브랜치와 develop 브랜치는 중요한 '메인 브랜치'에 해당되며, 프로젝트가 존재하는 한 영원히 존재합니다.

  1. master 브랜치에서 작업을 시작합니다.
  2. develop에 동일한 브랜치를 생성하고, 개발자들은 이 브랜치에서 개발을 진행합니다.
  3. 특정한 기능(회원가입, 장바구니, 이미지 관리 등) 구현이 필요할 경우 q개발자는 develop 브랜치에서 feature 브랜치를 생성해서 회원가입 기능을 구현하고, w개발자는 develop 브랜치에서 또 다른 feature 브랜치를 생성해서 장바구니 기능을 구현합니다.
  4. 기능 구현이 완료된 feature 브랜치는 검토를 하고 다시 develop 브랜치에 병합합니다.
  5. 기능의 구현이 완료되고 병합까지 완료한 develop 브랜치를 release 브랜치로 만듭니다.
  6. 품질 검사(QA)를 하면서 보완점을 보완하고 버그를 수정합니다.
  7. 완료되면 release 브랜치를 master 브랜치와 develop 브랜치로 보냅니다.
  8. master 브랜치에서 버전 추가를 위해 태그를 하나 생성하고 배포를 합니다.
  9. 배포를 완료했는데 미처 발견하지 못했던 버그가 발견될 경우 hotfixes 브랜치를 만들어 긴급 수정 작업을 합니다.
  10. 긴급 수정 작업이 완료되면 master 브랜치와 develop 브랜치로 보냅니다. 
  11. master 브랜치에 병합한 후 태그를 생성하고 바로 수정 및 배포를 합니다.
  12. develop 브랜치에 병합한 후 개발을 계속 진행합니다.
반응형