취미부자 개발자 로즈🌼
작성일
2024. 1. 12. 16:34
작성자
로즈♡

Git Flow 브랜치 전략이란?

브랜치 전략 중의 하나로 많은 회사와 팀에서 기본으로 사용하는 경우가 많다.

 

브랜치 전략은 뭐지?

여러 작업자가 하나의 레파지토리를 사용하는 환경인 경우

레파지토리를 효과적으로 활용하기 위한 규칙을 부여하는 것.

분기, 병합, 생성 등등 각 브랜치에 같은 규칙을 팀원들이 지키면서 진행하는 것.

 

Git Flow 브랜치 전략의 특징


1. 용도에 맞게 브랜치를 분리한다.

main : 운영에 배포 될 수 있는 코드를 모아둔 브랜치

develop : 다음 버전의 코드를 모아둔 브랜치. 운영환경에 업뎃시 main으로 merge함

feature : 새로운 기능을 위한 브랜치로 develop 브랜치에서 생성 후 완료되면 develop으로 merge

release : 새로운 버전 배포를 위한 브랜치. develop 브랜치에서 생성한다. 배포 전 버그 수정을 위해 사용되며, 배포 준비가 완료되면 main,develop에 모두 merge한다.

hotfix : 빠르게 수정해야 하는 경우 main을 빠르게 변경해야 할 때 사용. main브랜치에서 생성하고, 버그 수정 후 main과 develop에 merge한다. 

 

브랜치명 main develop feature release hotfix
생성 기준 - main develop develop main
작업 후
머지할 브랜치
- main develop main, develop main, develop
사용하는 이유 배포용 다음버전 코드 새로운 기능 새로운 버전 버전 주기가 아닌 경우
빠른 대응이 필요한 경우

 

1-1. 브랜치 생성 : main > develop > feature1, featue2, release 

1-2. 작업 후 머지 : feature > develop > release > main

 

 

2. 배포주기가 잦지 않은, 명확한 릴리즈 기간, 주기적인 버전이 있는 경우 적합

 

3. release브랜치를 따로 관리함으로 인해, 각 버전별을 동시에 관리 및 유지보수 하기에 편리함

 

4. 규모가 있는 팀 또는 롤백이나 다양한 버전을 필요호 하는 팀에서 유리

-> 보통 모바일 앱에서 적합하다고 하나, 서비스 운영을 통해 버그관리를 할 때도 사용. 

 

GitHub Flow는 뭐지?


git flow의 브랜치가 많다보니 자주 사용하지 않는 브랜치의 규칙을 학습해야 하기에

정말 필요한 경우가 아니라면 혼란을 가중시킬 수 있는데, 

이때 대안으로 사용하기 좋은 전략이다. 

 

1. main브랜치에만 엄격한 규칙이 적용되고, 그 외 브랜치는 규칙이 없음

main : 언제든 배포가 가능한 상태 유지. merge전 엄격한 테스트 필요

그외 브랜치 : main에서 생성하고 나머지 규칙은 없음. 단, 브랜치명, 커밋 메시지는 어떤 것을 담고 있는지 명확하게 작성. 작업 완료 후 main으로 PR작성. PR리뷰 완료 후 main으로 merge시 CI/CD를 거쳐 배포 진행

CI/CD 란? 자동화를 통합하는 앱 제공 방식으로 통합/지속적인 서비스(배포)를 뜻함.
CI : 지속적인 통합. 빌드/ 테스트를 자동화 과정
CD: 지속적인 서비스 제공. CI작업을 끝낸 뒤 실행. 지속적인 서비스(배포)

 

2. 잦은 배포가 필요할 때

3. 규칙이 간단해서 git에 익숙하지 않은 사람이 있을 때, 작은 프로젝트에 유리.

'💻 더 나은 개발자 되기 > Git' 카테고리의 다른 글

Git의 branch merge 방법들과 특징  (0) 2024.01.12