Git 브랜치 전략은 협업하는 개발자들이 Git을 사용할 때 중요한 역할을 한다.
이러한 전략은 코드를 효율적으로 관리하고 협업을 원활하게 하며 충돌을 최소화하고 안정성을 유지하기 위해 사용됨
중요한 이유
- 동시 개발 및 협업 : 여러 개발자가 동시에 프로젝트를 진행하고 협업이 가능함. 각 개발자는 자신의 작업을 별도의 브랜치에서 진행, 이후에 메인 코드베이스와 통합한다.
- 코드의 안정성 유지 : 메인 브랜치(주로 "master" 또는 "main")를 안정한 상태로 유지. 이는 사용자에게 항상 안정적인 소프트웨어 릴리스를 제공하고 긴급 수정을 쉽게 적용할 수 있게 해 준다.
- 충돌 최소화 : 코드 변경 사항을 메인 브랜치에 통합할 때 충돌을 최소화하기 위한 규칙과 절차를 정의. 이로 인해 코드 통합이 원활하게 이루어진다.
- 버전 관리 및 추적 : 버전 관리를 용이하게 하고, 개발자들이 특정 릴리스 또는 이슈와 관련된 변경 사항을 추적하는 것을 도움
- 테스트 및 배포 향상 : 코드 변경 사항을 효과적으로 테스트하고 다양한 환경에서 배포하는 방법을 개선
Git flow 전략
1. 복잡한 소프트웨어 프로젝트에 적합
2. 제품 릴리스와 버그 수정이 빈번하며 관리해야 하는 프로젝트에 유용
3. 릴리즈 관리, 버그 수정 및 다수의 개발자가 협업할 때

- Master (또는 Main) 브랜치 :
- 제품의 안정 버전을 나타내고, 메인 릴리스 브랜치로 생각하면 됨
- Master 브랜치에는 배포 가능한 코드만 병합
- 새로운 기능 및 수정 사항은 먼저 Develop 브랜치에서 개발되며, 이후에 Master 브랜치로 통합
- Develop 브랜치 :
- 다음 릴리스를 위한 모든 개발 작업이 이루어지는 브랜치
- 새로운 기능, 버그 수정, 기능 개선 및 다른 개발 작업이 Develop 브랜치에서 진행
- 각각 자신의 Feature 브랜치에서 작업한 내용을 Develop 브랜치로 병합
- Feature 브랜치 :
- 새로운 기능을 개발하기 위한 브랜치
- 각 개별 기능은 고유한 Feature 브랜치에서 개발되며, 작업이 완료되면 Develop 브랜치로 병합
- 일반적으로 기능의 이름 또는 설명에 따라 명명됩니다.
- Release 브랜치 :
- 릴리즈를 준비하기 위한 브랜치
- Develop 브랜치의 모든 개발이 완료되면, Release 브랜치를 만들고 여기에서 테스트, 버그 수정 및 릴리스 준비 작업
- 모든 준비가 완료되면 Master와 Develop 브랜치로 병합하여 새 릴리스를 생성
- Hotfix 브랜치 :
- 배포된 제품에서 발견된 긴급한 버그를 수정하기 위한 브랜치
- Hotfix 브랜치를 만들고 버그 수정 작업을 수행한 후, Master와 Develop 브랜치로 병합하여 버그 수정 적용
- 긴급한 상황에서만 생성되고 사용
Github flow 전략
1. 짧은 릴리즈 주기와 빠른 개발 및 배포를 중요시하는 프로젝트에 적합
2. 웹 애플리케이션, 웹 서비스, 또는 모바일 앱과 같이 빠른 소프트웨어 개발 주기가 요구되는 프로젝트
3. 빠른 기능 제공과 안정적인 배포를 달성할 수 있으며, 팀원들 간의 협업을 간편하게 가능

- Main Branch :
- 항상 안정하고 배포 가능한 상태를 유지
- Feature Branches :
- 새로운 기능을 개발하기 위해 각 개발자는 Main 브랜치에서 분리된 Feature 브랜치를 생성. 해당 기능을 개발하고 작업을 진행
- Pull Requests (PRs) : Feature 브랜치에서 작업이 완료되면 Main 브랜치로 코드를 통합하기 위한 Pull Request (PR)를 GitHub에서 생성. PR은 코드 검토와 협업의 중심 역할
- Code Reviews : 코드 리뷰는 PR을 통해 이루어짐. 코드 변경 사항을 검토하고 논의할 수 있으며, GitHub의 리뷰 기능을 활용하여 피드백을 주고받을 수 있음
- Deployment : PR이 승인되면, GitHub Actions 또는 다른 CI/CD 파이프라인을 사용하여 자동화된 테스트 및 배포
- Continuous Integration (CI) : GitHub Actions 및 다른 CI 도구를 활용하여 코드 변경 사항이 항상 테스트되고 빌드되도록 함. 이를 통해 코드 품질을 유지하고 문제를 조기에 식별
'공부 > Git' 카테고리의 다른 글
Git 명령어 정리 (1) | 2023.10.27 |
---|---|
vsCode로 Git push, merge, pull 하기 (0) | 2023.10.27 |
vsCode로 Git repository 및 branch 생성 (0) | 2023.10.27 |
댓글