Git Branch 전략은 협업할 때 효율적으로 코드를 관리하고 협업을 진행하기 위해 사용되는 방식입니다.
주로 사용되는 Git Branch 전략에 대해 소개하겠습니다.
1. Git Flow
Vincent Driessen이 제안한 전략으로, 안정성과 체계적인 배포 관리를 목표로 합니다.
주요 브랜치
- Main: 항상 배포 가능한 상태. 릴리스된 코드만 포함
- Develop: 개발 진행의 중심. 다음 릴리스를 준비하는 브랜치
보조 브랜치
- Feature Branch: 새로운 기능 개발을 위해 생성. 완료 후 develop에 병합.
- Release Branch: 배포 전 최종 테스트와 수정 작업. 완료 후 main과 develop에 병합.
(이름 예시: release/v1.0)
- Hotfix Branch: 긴급 버그 수정을 위해 생성. 완료 후 main과 develop에 병합.
(이름 예시: hotfix/login-error)
특징
- 구조가 체계적이라 중장기 프로젝트에 적합.
- 브랜치 관리가 복잡해질 수 있다.
2. GitHub Flow
GitHub에서 제안한 전략으로, 단순하고 빠른 배포에 초점이 맞추어져 있다.
주요 브랜치
- Main: 항상 배포가 가능한 상태. 모든 코드 변경 사항은 이 브랜치로 병합.
작업 방식
1. 작업 시 새로운 브랜치 생성 (ex. feature/header-update)
2. 작업 완료 후 Pull Request 생성
3. 코드 리뷰와 테스트 후 main에 병합
4. 병합 후 즉시 배포 가능
특징
- 단순한 구조로 소규모 프로젝트나 CI/CD 환경에 적합
- main 브랜치가 항상 안정적이어야 함.
3. GitLab Flow
GitLab이 제안한 전략으로, CI/CD 파이프라인과 잘 연동된다.
주요 브랜치
- Production: 프로덕션 배포용 브랜치.
- Pre-production (optional): 스테이징 환경용 브랜치.
- Feature Branch: 기능별 작업용 브랜치.
작업 방식
1. Feature 브랜치 생성 후 작업.
2. 작업 완료 후 main 또는 production에 병합.
3. 필요한 경우 pre-production 브랜치에서 테스트.
특징
- 유연한 구조로 다양한 프로젝트에서 활용 가능.
- CI/CD가 잘 설정되어야 효율적.
Trunk-Based Development
지속적인 배포와 짧은 개발 주기를 목표로 한 전략.
주요 브랜치
- Main: 모든 작업이 여기서 이루어짐.
작업 방식
1. 작은 단위로 작업 후 바로 main에 병합.
2. 병합 전 철저한 테스트와 코드 리뷰 필요.
특징
- 병합 충돌이 적음.
- 배포 주기가 짧은 프로젝트에 적합.
프로젝트 규모, 팀의 협업 스타일, 배포 주기 등을 고려해 적합한 전략을 선택하면 됩니다.
브랜치 네이밍 규칙
협업 시 혼란을 줄이기 위해 규칙을 정함.
Feature
feature/<기능명> 또는 feature/<이슈 번호>
(feature/user-login, feature/1)
Bugfix
bugfix/<버그명>
(bugfix/fix-typo)
Hotfix
hotfix/<긴급수정>
(hotfix/security-patch)
Release
release/<버전>
(release/v1.0.0)
저는 실습할 때, develop과 main 브랜치를 만들어놓고 기능을 추가할 때마다
feature/<이슈 번호> 브랜치를 만들어 develop에 merge하는 방식으로 했는데
이 방식도 편리하고 좋은 것 같아요.
(CI/CD 활용)
GitHub - xuuwon/youtube-web-xu
Contribute to xuuwon/youtube-web-xu development by creating an account on GitHub.
github.com