기타

Git Branch 전략들

hjcode 2023. 1. 4. 10:31

1. git flow

대규모 프로젝트에 적합하며, 5가지의 브랜치가 존재한다.

  • master - 배포시에 사용되는 브랜치
  • develop - 다음 배포 버전을 준비하는 개발 브랜치
  • feature - 단위 기능 개발을 위한 브랜치, develop 브랜치에 merge
  • release - 배포전에 테스트하는 브랜치, master에 merge
  • hotfix - master에 버그가 있을 경우 긴급수정 후 master, develop에 merge

 

계획적인 릴리즈를 가지고 스케줄이 짜여진 대규모 프로젝트에는 git flow가 적합하지만,

일반적인 프로젝트에서는 불필요한 절차들이 많아 생산성이 떨어진다.

2. github flow

git flow가 복잡하여 github에서 나온 전략

hotfix나 feature 를 구분하지 않고, pull request(PR)을 권장한다.

새로운 branch는 항상 master에서 만들며 이름을 명확하게 작성한다.

merge전에 pull request를 통해 코드리뷰를 하고 master에 merge한다.

master에 merge되고 push되면 즉시 배포가 되도록 설정한다(github flow의 핵심)

3. gitlab flow

복잡한 git flow와 간단한 github flow의 절충안

pre-production 브랜치를 두어 staging 단계를 가지는 전략

  • master - git flow에서 develop branch와 같은 역할
  • production - 배포를 위한 branch
  • pre-production - production branch로 merge하기 전에 테스트하기 위한 branch

master와 production branch 사이에 pre-production branch를 두어 변경 사항을

바로 production에 배포하지 않고 test server에 배포하여 통합 테스트를 진행하거나 시간을 두고 반영하는 방법

반응형