내 잡다한 노트
Git 브랜치 관리 전략 본문
Git Flow 전략은 제외합니다. 최근에 포스팅을 했기 때문에.
1. GitHub Flow
GitHub Flow는 단순하고 가벼운 브랜치 전략으로, 지속적 배포(Continuous Deployment)에 적합합니다.
특징
- main 브랜치만 존재하며, 항상 배포 가능한 상태를 유지.
- 모든 작업은 feature 브랜치에서 이루어지고, 작업 완료 후 main에 병합.
- 병합 시 코드 리뷰와 자동화된 테스트를 반드시 수행.
흐름
- main에서 feature 브랜치 생성.
- 작업 완료 후 Pull Request 생성.
- 코드 리뷰와 테스트 통과 후 main에 병합.
- 병합 후 바로 배포.
사용 시기
- 배포 주기가 짧고, 빠른 릴리스가 중요한 프로젝트.
- 단순한 워크플로우를 선호하는 소규모 팀.
2. GitLab Flow
GitLab Flow는 GitHub Flow를 기반으로 개선된 전략으로, 환경별 브랜치(예: staging, production)를 사용하는 것이 특징입니다.
특징
- main 브랜치 외에 staging이나 production 브랜치를 사용하여 배포 프로세스를 관리.
- 배포 환경에 따라 병합 시점을 명확히 구분.
흐름
- feature 브랜치에서 개발.
- 작업 완료 후 main에 병합.
- 자동화된 테스트가 통과되면 staging 브랜치로 병합하여 QA 테스트.
- QA 완료 후 production 브랜치로 병합하여 실제 배포.
사용 시기
- 여러 배포 환경(테스트, 프로덕션 등)을 관리해야 하는 프로젝트.
- 중간 QA 단계가 필요한 팀.
3. Trunk-Based Development
Trunk-Based Development는 브랜치 사용을 최소화하고, main 브랜치를 중심으로 작업하는 전략입니다.
특징
- 모든 작업이 main 브랜치에서 이루어지거나, 짧게 유지되는 브랜치에서 작업 후 바로 병합.
- 브랜치는 짧은 생명 주기를 가짐.
- 지속적 통합(Continuous Integration, CI)과 지속적 배포(Continuous Deployment, CD)에 최적화.
흐름
- main에서 바로 작업하거나, 단기 브랜치 생성.
- 작업 완료 후 빠르게 main에 병합.
- 배포 자동화 프로세스를 통해 즉시 배포.
사용 시기
- 배포 주기가 매우 짧은 프로젝트.
- CI/CD 환경을 적극적으로 활용하는 팀.
4. Forking Workflow
Forking Workflow는 오픈 소스 프로젝트에서 주로 사용하는 전략입니다.
특징
- 각 개발자가 프로젝트를 **포크(fork)**하고, 자신의 복제본에서 작업.
- 작업 완료 후 Pull Request를 통해 병합 요청.
흐름
- 중앙 저장소를 포크하여 자신의 저장소 생성.
- 자신의 저장소에서 브랜치를 만들어 작업.
- 작업 완료 후 중앙 저장소에 병합 요청(Pull Request).
사용 시기
- 오픈 소스 프로젝트나 비공개 협업 프로젝트.
- 여러 외부 기여자와 협업하는 경우.
'Git' 카테고리의 다른 글
Github에서 사용하는 라이언스 설명 (0) | 2024.12.25 |
---|---|
Git Flow 전략 (0) | 2024.11.25 |
Git fetch와 pull의 차이 (0) | 2024.11.25 |
Git switch와 checkout의 차이 (0) | 2024.11.25 |
Git 자주 쓰이는 명령어 정리 (0) | 2024.11.25 |