Git 브랜치 전략은 프로젝트의 코드 변경 관리와 협업을 효율적으로 하기 위한 방법입니다. 다양한 전략 중 몇 가지를 소개하겠습니다.
Git Flow
Git Flow는 Vincent Driessen이 제안한 전략으로, 복잡한 브랜치 구조를 체계적으로 관리합니다. 이 전략은 메인 브랜치와 개발 브랜치를 분리하고, 기능 개발, 릴리스 준비, 긴급 수정 등을 각각의 브랜치에서 관리합니다.
브랜치 종류
- main: 최종적으로 배포되는 안정적인 코드가 위치.
- develop: 개발 중인 코드가 위치. 새로운 기능을 병합하기 전에 이 브랜치에서 통합 및 테스트.
- feature: 새로운 기능 개발을 위해 develop 브랜치에서 분기. 기능 개발이 완료되면 develop 브랜치로 병합.
- release: 릴리스를 준비하는 브랜치로, develop 브랜치에서 분기하여 안정화 작업을 진행. 작업 완료 후 main과 develop 브랜치로 병합.
- hotfix: 긴급 버그 수정을 위해 main 브랜치에서 분기. 수정 후 main과 develop 브랜치로 병합.
- 특징: 복잡하지만 체계적. 메인 코드베이스를 main, 개발 중인 코드를 develop 브랜치로 관리.
- 사용: 대규모 프로젝트나 명확한 릴리스 관리가 필요한 경우.
GitHub Flow
GitHub Flow는 단순한 워크플로로, 지속적 배포가 가능한 환경에서 많이 사용됩니다. 이 전략은 별도의 브랜치를 만들고, 변경 사항을 pull request를 통해 리뷰 및 병합하는 방식입니다.
브랜치 종류
- main: 항상 배포 가능한 상태를 유지.
- feature: 각 기능이나 버그 수정을 위한 브랜치로, 작업 완료 후 main 브랜치로 병합.
- 특징: 단순하고 가벼움. 모든 기능은 별도의 브랜치에서 개발하고, main 브랜치에 병합.
- 사용: 지속적 배포가 가능한 소규모 팀이나 프로젝트에 적합.
GitLab Flow
GitLab Flow는 환경별로 브랜치를 관리하여, CI/CD 파이프라인과 밀접하게 통합된 전략입니다. 개발, 테스트, 스테이징, 프로덕션 등 환경별 브랜치를 통해 배포를 관리합니다.
브랜치 종류
- main: 기본 브랜치로, 최신의 안정적인 코드가 위치.
- production: 프로덕션 환경의 코드가 위치.
- pre-production: 프로덕션 배포 전에 테스트를 위한 브랜치.
- feature: 새로운 기능 개발을 위한 브랜치.
- 특징: 환경별로 브랜치를 관리하여 CI/CD 파이프라인과 밀접하게 통합.
- 사용: 다양한 환경에서 배포를 관리하는 경우 유용.
Trunk-Based Development
Trunk-Based Development는 항상 main 브랜치를 최신 상태로 유지하며, 작은 단위의 변경을 자주 병합하는 전략입니다. 이 방식은 코드 리뷰와 자동화된 테스트를 통해 빠르게 통합하고 배포합니다.
브랜치 종류
- main: 유일한 브랜치로, 모든 변경 사항을 자주 병합.
- short-lived feature branches: 짧은 기간 동안 사용되는 기능 브랜치로, 작업 완료 후 main 브랜치로 신속히 병합.
- 특징: 항상 main 브랜치를 최신 상태로 유지하고, 작은 단위로 자주 병합.
- 사용: 빠른 배포와 지속적 통합이 중요한 프로젝트에 적합.
이러한 브랜치 전략을 통해 프로젝트의 크기, 팀의 규모, 배포 요구 사항 등에 맞춰 최적의 워크플로를 선택할 수 있습니다. 각 전략의 장단점을 잘 이해하고 상황에 맞게 적용하는 것이 중요합니다.
[Gitlab] 암호 없이 GitLab에 안전하게 접속하는 방법: 액세스 토큰 발급하기 (0) |
2024.05.28 |
[Git] 파일 구조 정리 (0) |
2024.05.21 |
[Git] 명령어 - remote, diff, rm, log, reset, revert, restore (0) |
2024.05.20 |
[Git] 명령어 - branch (0) |
2024.05.20 |
[Git] 명령어 - commit, config, init, clone, add, push, pull (0) |
2024.05.20 |