ETC/Git

[git] 깃 브랜치 전략, git branching strategy - GitFlow

seokhyun2 2021. 1. 24. 21:08

git은 소스코드를 관리하는데 도움을 주는 툴입니다. 

 

git에는 branch라는 기능이 있습니다.

branch는 말 그대로 가지를 뜻하며, 해당 가지에 대해서 다른 버전으로 코드를 관리할 수 있습니다.

 

개발을 할 때는 배포되는 버전, 개발 중인 버전, 급한 버그를 픽스하는 버전, 리뷰를 하는 버전 등으로 코드를 나누어 관리를 하게 되는데, 이러한 복잡한 관리를 branch를 활용하면 편하게 관리할 수 있습니다.

 

GitFlow 전략

그래서 이러한 branch를 관리하는 전략 중에 가장 유명한 전략이 GitFlow라는 전략입니다.

GitFlow 전략은 그림(nvie.com/img/git-model@2x.png)부터 보시면, 아래와 같습니다.

위에서 부터 내려오고, 각 동그라미가 branch입니다.

 

GitFlow에는 5가지 종류의 branch가 존재합니다.

    1. master

    2. develop

    3. feature

    4. release

    5. hotfix

각 branch가 어떤 역할을 하는지 알아보도록 하겠습니다.

1. master

master 브랜치는 배포 버전을 관리하고 기록하는 branch입니다. 

그림에서 하늘색 branch로, 항상 존재하는 branch입니다.

2. develop

develop 브랜치는 개발 중인 branch로 그림에서는 노란색에 해당하며 master와 같이 항상 존재하며 develop 브랜치는 현재 배포되어 있는 master 브랜치로부터 출발합니다.

3. feature

feature 브랜치는 그림에서 분홍색 브랜치이며, develop 브랜치로 부터 분기됩니다.

feature 브랜치의 역할은 develop branch에서 여러 명의 사람이 여러 가지 기능을 동시에 개발할 때, 각 기능에 대해서 따로 feature 브랜치로 분기하여 개발을 하고 합치기 위한 역할입니다.

그래서 보통 feature/function-1과 같은 방식으로 브랜치 명을 정하기도 하며, 해당 기능 개발이 완료되고 develop 브랜치에 성공적으로 합쳐지면 사라지는 브랜치입니다.

4. release

배포는 release라는 초록색 branch로 관리하는데, release branch는 develop에서 기능 개발이 완료되었을 때 현재 develop과 동일한 코드 버전으로 release branch를 생성합니다.

생성된 release branch는 배포 준비가 된 단계로 여기서부터 이제 QA(Quality Assurance)를 거쳐서 버그를 픽스하고, 실제 배포를 하는 버전은 다시 하늘색의 master로 가게 되며 사라지는 브랜치입니다.

5. hotfix

배포된 버전에서 급하게 버그를 수정할 때는, 빨간색의 hotfix branch를 생성하여 빠르게 수정 후에 master와 develop에 반영시키도록 관리합니다.

 

 

꼭 GitFlow를 따라해야하는 것은 아닙니다.

GitFlow는 좋은 전략의 예시일 뿐이며, 나에게 필요한 것만 활용하고 부족한 것은 더 추가하여 활용하면 되고,

각 회사마다 또 회사 내에서 팀마다 branch를 관리하는 전략이 다릅니다.

 

branch를 관리하는 전략은, 소스코드 관리와 협업에서 매우 중요하여 주니어들의 면접에서는 현재 git branch를 어떻게 관리하고 있는지와 같은 질문도 자주 등장하므로 branch를 어떻게 관리하면 좋을 지 꼭 생각해보시고 정리해보시길 바랍니다.

'ETC > Git' 카테고리의 다른 글

모노 레포(Monolithic Repository)  (0) 2024.01.21
[git] merge, rebase  (0) 2021.03.06