Muscardinus

Git flow / Github flow / Gitlab flow 본문

Git

Git flow / Github flow / Gitlab flow

Muscardinus 2021. 4. 19. 17:55
728x90

소프트웨어의 소스코드를 관리하고 출시하기 위한 "브랜치 관리 전략"에 대해서 알아보자

 

Git flow

사용하는 브랜치의 종류는 5가지이다.

 

Master(Main) - 제품으로 출시되는 Branch

Develop - 다음 출시 버전을 개발하는 Branch

Feature - 기능을 개발하는 Branch

Release - 이번 출시 버전을 주닙하는 Branch

Hotfix - 출시 버전에서 발생한 버그를 수정하는 Branch

 

 

  • 처음에 Master(Main)와 Develop 생성
  • 새로운 추가 작업은 Develop에서 Feature Branch 생성
  • Feature는 Develop으로 Merge
  • QA를 위해서 Develop에서 Release Branch 생성
  • QA에서 발생한 버그는 Release에서 수정
  • QA가 끝나면 Release에서 Develop / Master(Main)으로 각각 Merge
  • Hotfix는 Master에서 시작하여 수정 후 Master / Develop에 Merge

Github flow

Git flow를 조금 더 간소화 시킨 방식으로 Github에 최적화 된 방식을 추구한다. 또한 자동화의 개념이 들어가 있다는 점이 특징이다.

 

Master(Main) Brnach에 대한 role만 정확하다면 나머지 Branch들에는 관여를 하지 않는다. 그리고 Pull Request 기능의 사용을 권장한다.

 

특징

- Release Branch가 명확하지 않은 시스템에서 사용에 맞게 되어있다.

- Master(Main) Branch는 항상 최신 상태이며, stable tkdxofh Product에 배포되는 Branch이다.

- 새로운 일을 시작하기 위해 Branch를 Master(Main)에서 딴다면 이름은 어떤 작업인지 명확하게 명시한다.

- 피드백이나 도움이 필요할 때, PR을 생성하여 공유한다.

 

Gitlab flow

Github flow가 너무 간소화되어 있어서, 배포, 환경 구성, 릴리즈, 통합에 대한 이슈가 있어 이것을 보완하기 위해서 생겼다.

 

Master Branch 이외에 Production Branch가 종재하여 커밋한 내용들을 일방적으로 Deploy하는 형태이다.

 

728x90
Comments