
Git 브랜치 전략이란?work-flowGit 브랜치 전략1. Git FlowGit 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 FlowGitLab 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명확한 브랜치 명명 규칙: 브랜치 이름만으로도 목적을 쉽게 파악할 수 있어야 한다.정기적인 브랜치 정리: 사용하지 않는 브랜치는 삭제하여 관리 오버헤드를 줄인다.코드 리뷰: 브랜치 병합 전 코드 리뷰를 통해 코드 품질을 유지한다.