Git Flow, Github Flow, Gitlab Flow

김신영·2022년 10월 24일
0

DevTool

목록 보기
3/4
post-thumbnail

Git Flow

가장 최초로 제안된 Workflow 방식이며, 대규모 프로젝트 관리에 적합한 방식으로 평가받는다.

Branch 구성

  • feature
  • develop
  • release
  • hotfix
  • master

feature

  • develop 브랜치에서 특정 기능 구현을 위한 브랜치
  • 한 기능 단위 마다 feature 브랜치를 develop 브랜치로부터 생성한다.

develop

  • 다음 Release 버전 개발을 진행하는 브랜치

release

  • develop 브랜치로부터 생성되어, master 브랜치로 merge될 수 있는지 테스트 하고 bug fix하는 브랜치
  • 확인 후, 해당 브랜치를 master에 merge한다.
  • master 브랜치에 merge가 성공한 이후에, develop 브랜치에 merge한다.

master

  • 배포시 사용하는 최종 단계의 메인 브랜치
  • tag를 통해 버전을 관리한다.

hotfix

  • master브랜치의 버그를 수정하기 위한 브랜치
  • master 브랜치의 버그 발견시, master 브랜치로부터 hotfix 브랜치를 생성한다.
  • 버그 수정 완료시, master 브랜치로 merge한다.
  • master브랜치에 merge가 성공했을 시, develop 브랜치에도 merge 한다.

Github Flow

git-flow를 개선하기 위해 나온 하나의 방식

Branch 구성

  • master

  • master 가 release에 있어 절대적인 브랜치이다.

  • 새로운 브랜치는 항상 master 브랜치에서 만들며, 새로운 기능 추가나 버그 해결을 위한 브랜치는 해당 역할에 대한 이름을 명확하게 지어주고, 커밋 메시지 또한 알기 쉽도록 작성해야 한다.

  • 그리고 Merge 전에는 pull request를 통해 공유하여 코드 리뷰를 진행한다. 이를 통해 피드백을 받고, Merge 준비가 완료되면 Master 브랜치로 요청하게 된다.

Gitlab Flow

github flow의 간단한 배포 이슈를 보완하기 위해 관련 내용을 추가로 덧붙인 flow 방식

Branch 구성

  • master

  • pre-production

  • production

  • master 브랜치와 production 브랜치 사이에 pre-production 브랜치를 두어 개발 내용을 바로 반영하지 않고, 시간을 두고 반영한다. 이를 통한 이점은, production 브랜치에서 릴리즈된 코드가 항상 프로젝트의 최신 버전 상태를 유지할 필요가 없는 것이다.

profile
Hello velog!

0개의 댓글