브랜치에는 다음 그림과 같이 다섯 종류가 있음을 알 수 있습니다.

1. Master Branch
제품으로 출시될 수 있는 브랜치.
배포(Release) 이력을 관리하기 위해 사용. 즉, 배포 가능한 상태만을 관리한다.
2. Develop Branch
다음 출시 버전을 개발하는 브랜치.
기능 개발을 위한 브랜치들을 병합하기 위해 사용.
모든 기능이 추가되고 버그가 수정되어 배포 가능한 상태가 되면 Develop Branch를 Master Branch에 병합(merge) 한다.
평소에는 이 브랜치를 기반으로 개발을 진행한다.
3. Feature Branch
기능을 개발하는 브랜치.
새로운 기능 개발 및 버그 수정이 필요할 때마다 Develop Branch로부터 분기한다.
Feature Branch에서의 작업은 기본적으로 공유할 필요가 없기 때문에 자신의 로컬 저장소에서 관리한다.
개발이 완료되면 Feature Branch를 Develop Branch로 병합(merge)하여 다른 사람들과 공유한다.
더 이상 필요하지 않은 Feature Branch 는 삭제한다.
Feature Branch는 뜻에서 알 수 있듯이 기능이 여러개가 될 수 있으므로, Feature Branch가 여러 개가 될 수 있음.
4. Release Branch
이번 출시 버전을 준비하는 브랜치.
배포를 위한 전용 브랜치를 사용함으로써 한 팀이 해당 배포를 준비하는 동안 다른 팀은 다음 배포를 위한 기능 개발을 계속할 수 있다. 즉, 딱딱 끊어지는 개발 단계를 정의하기 아주 좋다.
1. Develop Branch에서 배포할 수 있는 수준의 기능이 모이면 또는 정해진 배포 일정이 되면, Release Branch를 분기한다.
- Release Branch를 만드는 순간부터 배포 사이클이 시작된다.
- Release Branch에서는 배포를 위한 최종적인 버그 수정, 문서 추가 등 릴리스와 직접적으로 관련된 작업을 수행한다.
- 직접적으로 관련된 작업들을 제외하고는 Release Branch 에서 새로운 기능을 추가로 병합(merge) 하지 않는다.
2. Release Branch 에서 배포 가능한 상태가 되면 (배포 준비가 완료되면),
- Master Branch에 병합한다. (이때, 병합한 커밋에 Release 버전 태그 부여)
- 배포를 준비하는 동안 Release Branch가 변경되었을 수 있으므로 배포 완료 후 Develop 브랜치에도 병합한다.
5. Hotfix Branch
출시 버전에서 발생한 버그를 수정하는 브랜치.
배포한 버전에서 긴급하게 수정을 해야할 경우, Master Branch에서 분기하는 브랜치이다.
Develop Branch에서 문제가 되는 부분을 수정하여 배포 가능한 버전을 만드는 것은 시간이 많이 소요되고 안정성을 보장하기도 어려우므로, 바로 배포가 가능한 Master Branch에서 직접 브랜치를 만들어 필요한 부분만을 수정한 후 다시 Master Branch에 병합하여 배포하는 것이다.
'github' 카테고리의 다른 글
| 브랜치 (branch)란 무엇인가? 작업흐름은? (0) | 2024.09.20 |
|---|---|
| Git & Github 기본개념과 차이 (0) | 2024.09.13 |
댓글