Git branch 전략
Git branch 전략으로 불리는 git flow을 사용해 협업을 원활히 할 수 있다.
- git flow에 사용되는 branch 의 종류와 특징
Git branch 전략 (Git Flow)
Git Flow
master와 develop이라는 항상 존재하는 메인 브랜치(Main branch)가 있다.
master 브랜치
배포 가능한 상태만을 관리하는 브랜치.
develop 브랜치
다음에 배포할 것을 개발하는 브랜치.
통합 브랜치 역할을 하며, 평소에는 이 브랜치를 기반으로 개발을 한다.
feature-*
기능을 개발하는 브랜치.
develop 브랜치에서 feature를 checkout해서 작업한다.
feature 브랜치를 사용한다면 feature/#이슈번호 와 같은 형태로 브랜치를 관리한다.
release-*
develop 브랜치에 충분한 기능이 merge 되었다면, QA(품질 보증(코드 테스트/검증))를 위해서 develop 브랜치로부터 release 브랜치를 생성한다.
배포 가능한 상태가 되면 master 브랜치로 merge하고, 출시된 master 브랜치에 버전 태그(v0.1, v0.2 ..)를 추가한다.
release 브랜치에서 기능을 점검하며 발견한 버그 수정 사항은 develop 브랜치에도 적용해줘야 한다.
배포 완료 후(master와 merge 이후) develop 브랜치에 대해서도 merge 작업을 수행한다.
hotfix-*
배포한 master 브랜치에서 긴급하게 수정할 필요가 있을 때, master 브랜치에서 분기하는 브랜치를 말한다.
버그를 잡는 사람이 일하는 동안에도 다른 사람들은 develop 브랜치에서 지속적으로 작업할 수 있다.
hotfix 브랜치에서의 변경 사항은 develop 브랜치에도 merge하여 문제 부분을 처리해야 한다.
(이때 다른 개발자들은 hotfix 중인 부분을 건드리지 않도록 주의한다)
hotfix 브랜치에 대해서는 개발자들간의 코드 충돌이 발생할 가능성이 존재한다.
이 부분은 직접적인 의사소통을 사용한 해결이 필요해 보인다.
가장 중심이 되는 브랜치는 master와 develop 브랜치이며, merge된 feature, release, hotfix 브랜치는 삭제한다.
'DevOps > Git' 카테고리의 다른 글
[Git] 의미있는 commit 메시지와 깔끔한 history (0) | 2022.04.26 |
---|---|
git 원격 레포지토리 파일 삭제 (0) | 2022.02.14 |
마이크로서비스를 위한 git branch 생성 자동화 (0) | 2022.01.30 |
[Mac] GitHub push token 오류 해결 (15) | 2021.07.29 |