Git Flow 브랜치 전략에 대해 설명해 주세요.
2024. 8. 19. 06:09ㆍ코드잇 스프린트/위클리 페이퍼
Git Flow 브랜치 전략에 대해 설명해 주세요.
1. Git Branch 전략
- 효과적인 깃 협업을 위한 브랜치 관리 방식
- work flow 및 브랜치 규칙 정의 후 이에 따라 작업 수행
- 깃 브랜치 전략
- Git Flow
- GitHub Flow
- GitLab Flow
- TBD(Trunk-Based Development) 등
2. Git Flow
- Vincent Driessen이 제안한 대표적인 브랜치 전략
브랜치 종류
- main : 제품 배포
- develop : 제품 개발
- feature : 기능 개발(병합 후 삭제)
- release : 제품 준비(병합 후 삭제)
- hotfix : 제품 버그 수정(병합 후 삭제)
전략 흐름
- feature에서 기능 개발 후 develop에 병합
- develop에 기능 쌓이면 release로 분기
- release에서 제품 준비 후 main에 병합
- 제품 버그 발생 시 hotfix 분기 후 해결하여 main에 병합
- 완료된 release와 hotfix는 develop에 병합
전략 특징
- 대규모 프로젝트와 같이, 뚜렷한 릴리즈 주기 속에서 체계적인 개발을 진행할 때 유리함
3. GitHub Flow
- GitHub에서 제안한 단순화된 브랜치 전략
브랜치 종류
- main : 제품 배포
- feature : 기능 개발(병합 후 삭제)
전략 흐름
- feature에서 기능 개발 후 PR을 거쳐 main에 병합
전략 특징
- 소규모 프로젝트와 같이, 빠른 개발 및 배포가 필요할 때 유리함
4. GitLab Flow
- GitLab에서 제안한 절충적인 브랜치 전략
브랜치 종류
- main : 제품 개발
- feature : 기능 개발(병합 후 삭제)
- pre-production : 제품 준비(병합 후 삭제)
- production : 제품 배포
전략 흐름
- feature에서 기능 개발 후 main에 병합
- main에 기능 쌓이면 pre-production로 분기
- pre-production에서 제품 준비 후 production에 병합
- 완료된 pre-production은 main에 병합
전략 특징
- 타 전략과 달리 main을 개발용으로 사용
- Git Flow와 GitHub Flow의 절충안으로, 빠른 배포와 함께 퀄리티가 보장돼야 할 때 유리함
5. TBD
- Trunk-based Development
- GitHub에서 제안하는 최소화된 브랜치 전략
브랜치 종류
- main(trunk) : 제품 배포
- short-feature : 단기 기능 개발(병합 후 삭제)
전략 흐름
- feature에서 단기 기능 개발 후 main에 병합
전략 특징
- 빠른 개발 및 배포가 필요할 때 유리함
- main에 바로 병합하므로 CI/CD가 중요함
6. 참고 자료
'코드잇 스프린트 > 위클리 페이퍼' 카테고리의 다른 글
자바스크립트 this에 대해 설명해 주세요. (0) | 2024.09.02 |
---|---|
이벤트 버블링, 캡쳐링, 위임에 대해 설명해 주세요. (0) | 2024.09.02 |
Git에서 branch merge 방법들과 각 방법의 특징을 설명해 주세요. (0) | 2024.08.19 |
position의 속성들과 각각의 특징을 설명해 주세요. (0) | 2024.08.10 |
시맨틱 태그를 사용하면 좋은 점을 설명해 주세요. (0) | 2024.08.10 |