Git
브랜치 전략이란?work-flow
Git
브랜치 전략1. Git Flow
Git Flow는 가장 널리 알려진 브랜치 전략 중 하나로, 명확한 브랜치 구조와 워크플로우를 제공한다.
주요 브랜치는 다음과 같다.
master
: 기준이 되는 브랜치
항상 배포 가능한 상태의 안정적인 코드를 유지
develop
: 다음 릴리즈를 위한 개발 브랜치로 이 브랜치를 기준으로 작업한 기능들을 merge함
merge
되면 사라지는 보조 브랜치feature
: 새로운 기능 개발을 위한 브랜치로, develop 브랜치에서 분기됨
release
: 릴리즈 준비를 위해 품질관리
(QA)를 하는 브랜치로, develop 브랜치에서 분기됨
hotfix
: master 브랜치에서 발생한 버그를 수정하기 위한 브랜치
장점: 명확한 구조와 워크플로우를 제공하여 협업이 용이하다
단점: 복잡한 브랜치 관리로 인해 overhead
가 발생할 수 있다.
Git Flow
흐름develop
브랜치에서 병합master
브랜치로 병합신규 기능 개발
develop
브랜치로부터 feature
브랜치를 분기 생성develop
브랜치로 병합라이브 서버로 배포
feature
브랜치들이 merge되었다면 release
브랜치를 생성release
브랜치에서 오류가 확인될 시 거기서 수정master
브랜치로 merge배포 후 관리
hotfix
브랜치를 생성하여 버그를 수정한다.master
와 develop
에 merge2. GitHub Flow
GitHub Flow
는 Git Flow보다 간결한 전략으로, GitHub에 적용하기 위해 자동화
를 이용한다.
Master
브랜치는 항상 최신 버전을 유지한다feature
브랜치에서 이루어진다.master
브랜치에 병합된다. 3. GitLab Flow
GitLab Flow는 Git Flow와 GitHub Flow의 장점을 결합한 전략으로 Git Flow보다는 간결하고 GitHub Flow의 안정성을 보완한다.
바로 배포하는 Gitlab flow
중간에 pre-production을 두는 Gitlab flow
feature
: 기능 구현을 시작하는 브랜치. master
브랜치에서 분기되고 머지됨master
: Git Flow의 develop
브랜치 역할.feature
브랜치에서 병합된 기능에 대해 테스트를 진행함.production
브랜치로 머지production
: Git Flow의 master
브랜치와 동일pre-production
: master에서 production 브랜치로 머지하기 전에 통합 테스트를 진행하는 브랜치master
브랜치와 develop
브랜치를 사용하며, 환경별 브랜치 (production, pre-production) 를 추가하여 배포 단계를 명확하게 관리한다.
GitLab Flow
는 다양한 환경에서의 배포를 효율적으로 관리할 수 있지만, Git Flow와 유사하게 overhead
가 발생할 수 있다.
Git
브랜치 전략 선택 기준팀 규모 및 구조
: 소규모 팀에서는 간결한 전략이, 대규모 팀에서는 명확한 구조가 필요할 수 있음프로젝트 특성
: 빠른 개발 및 배포가 중요한 프로젝트에서는 GitHub Flow가 적합할 수 있음배포 환경
: 다양한 환경에서 배포하는 경우 GitLab Flow가 적합할 수 있음TIP
명확한 브랜치 명명 규칙
: 브랜치 이름만으로도 목적을 쉽게 파악할 수 있어야 한다.정기적인 브랜치 정리
: 사용하지 않는 브랜치는 삭제하여 관리 오버헤드를 줄인다.코드 리뷰
: 브랜치 병합 전 코드 리뷰를 통해 코드 품질을 유지한다.