많은 개발자들이 Git을 통해 협업을 하는데 계속 혼자서 개발을 해오다

 

서로 다른 사람들끼리 어떻게 코딩을하고 나중에 합치는지를 공부해 보자

 

1. Git Flow란?

Git Flow는 Git이 새롭게 활성화 되기 시작하던때 Vincent Driessen 라는 사람의

 

블로그에 의해 널리 퍼지기 시작했고 현재 Git으로 개발할 때 거의 표준으로 사용되고 있다

 

Git flow는 쉽게말해 기능이 아닌 서로간의 협업 방법, 즉 약속이라고 할 수 있다

 

Vincent Driessen도 언급했지만 Git flow가 완벽한 방법론이 아니고

 

각자 개발 환경에 따라 수정하고 변형해서 사용하라고 언급했다

 

2. Git Flow 운영 방법

Git flow는 총 5가지의 브랜치를 사용해서 운영한다

 

- master : 기준이 되는 브랜치로 제품을 배포하는 브랜치 이다

- develop : 개발 브랜치로 개발자들이 이 브랜치를 기준으로 각자 작업한 기능들을 합친다(Merge)

- feature : 단위 기능을 개발하는 브랜치로 기능 개발이 완료되면 develop 브랜치에 합친다

- release : 배포를 위해 master 브랜치로 보내기 전에 먼저 QA(품질검사)를 하기위한 브랜치 이다

- hotfix : master 브랜치로 배포를 했는데 버그가 생겼을 떄 긴급 수정하는 브랜치 이다

 

master와 develop이 중요한 메인 브랜치 이고 

나머지는 필요에 의해서 운영하는 브랜치 이다

 

3. 자세한 진행 설명

1) 일단 master 브랜치에서 시작을 한다

 

2) 동일한 내용으로 develop 브랜치도 생성을 한다

개발자들은 develop 브랜치에서 개발을 진행한다

 

3) 개발을 진행하다가 회원가입 또는 글쓰기 등의 기능 구현이 필요할 경우

A개발자는 develop 브랜치에서 feature 브랜치를 하나 생성해서 회원가입 기능을 구현하고

B개발자도 develop 브랜치에서 feature 브랜치를 하나 생성해서 글쓰기 기능을 구현한다

 

4) 완료된 feature 브랜치는 검토를 거쳐 다시 develop 브랜치에 합친다 (Merge)

 

5) 모든 기능이 완료되면 develop 브랜치를 release 브랜치로 만든다

그리고 QA(품질검사)를 하면서 보완하고 버그를 픽스한다

 

6) 모든것이 완료되면 release 브랜치를 master 브랜치와 develop 브랜치로 보낸다

master 브랜치에서 버전 추가를 위해 태그를 하나 생성하고 배포를 한다

 

7) 배포를 했는데 미처 발견하지 못한 버그가 발견될 경우

hotfixes 브랜치를 만들어 긴급 수정 후 태그를 생성하고 바로 수정 배포를 한다 

 

Vincent Driessen의 블로그 참조

 

우아한형제들 기술블로그에서도 쓰일 정도로 Git Flow를 설명할때 많이 사용되는 사진이다