minseok0917

회사에서 브랜치 관리하는 방법

회사마다 브랜치를 관리하는 방법이 다르고, 체계가 없는 곳은 팀마다 또는 사람마다 브랜치를 관리하는 방법이 다릅니다.
지인들과 이야기할 때 브랜치를 관리하는 방법이 다른 경우가 종종 있었기에 제가 사용하는 방법을 소개해볼까 합니다.
저는 Git Flow 라는 브랜치 전략을 사용하여 관리하고 있으며, 아래는 직접 Excalidraw를 사용하여 프로세스를 시각화한 이미지입니다.

밑에 이미지에서는 기존에 Git Flow에는 존재하는 않는 feature-merge 라는 브랜치가 존재합니다.
해당 브랜치의 역할은 feature에서 N개의 개발된 내역을 dev 로 머지를 하는 과정에서 충돌이 났을 경우 잘못된 방법으로 수정하는걸 방지하고자 만든 중재자 브랜치입니다.
그래서 dev, hotfix에서 수정을 잘못할 경우 꽤 복잡하게 꼬이지만, featrue-merge에서 수정을 잘못해도 지우고 새로 만들면 되기에 제가 머지할 때 주로 사용하는 방법입니다.

브랜치명역할 설명
main운영 브랜치
dev개발 관리 브랜치 (개발 중앙)
hotfix운영 버그 관리 브랜치(버그 중앙)
release개발 서버 배포 브랜치
feature:worker개발 작업용 브랜치 (기능 또는 작업자 위주로 분리)
feature-mergedev, hotfix에서 머지전에 미리 하는 곳