본문 바로가기

개발정보

Git Flow

Git Flow?

Git으로 개발할 때 표준과 같이 사용되는 방법론이다. 

Git Flow라는 기능이 있는 것이 아닌 서로 간의 약속인 방법론이라는 점이 핵심이다. 

 

Git-flow5가지의 브랜치를 사용해서 운영을 한다. 

1. master : 기준이 되는 브랜치로 배포를 하는 브랜치이다. 

2. develop : 개발 브랜치로 개발자들이 해당 브랜치를 기준으로 작업한 내용을 합친다. 

3. feature : 단위 기능을 개발하는 브랜치로 개발 완료 후 develop으로 합쳐진다. 

4. release : 배포를 위해 master 브랜치로 보내기 전 QA를 하기 위한 브랜치이다. 

5. hotfix : master 브랜치로 배포했을 때 버그가 생겨 급하게 주정하는 브랜치이다. 

 

Vincent Driessen 블로그 참조

각각의 부분을 좀 더 깊게 설명해보자면 

master 

정식 배포되는 안정적인 소스코드가 관리된다. 

즉, master 브랜치의 HEAD는 소프트웨어의 최신 배포판의 소스코드가 들어있다. 

 

이전 배포 버전의 소스코드를 따라가기 위해 태그들이 추가되어 있는데, 이 태그를 사용해서 

이전 릴리스 버전의 코드를 확인할 수 있다. 

 

배포가 되는 브랜치이기 때문에 안정성이 충분히 검증된 코드들만 병합됩니다. 

 

develop

개발이 이루어지는 만큼 소스코드들이 끊임없이 추가된다. 

 

개발자가 feature 브랜치에서 소스코드 수정을 한 다음 develop 브랜치로 PR 요청을 하면 

다른 개발자가 기능을 확인한 후 최종적으로 develop 브랜치에서 병합이 됩니다. 

 

feature 

기능 개발이나 버그 수정을 위해서 직접적인 코드 수정이 이루어지는 브랜치이다. 

 

작업이 완료되면 최종적으로 PR을 거쳐 develop 브랜치에 병합된다. 

 

release 

정기적으로 성능 개선, 기능 추가, 버그 수정을 반영하면서 릴리즈 된다. 

release 브랜치는 릴리즈를 하기 위한 목적으로 만들어지는 브랜치이다. 

 

develop 브랜치를 기반으로 릴리즈 브랜치가 생성된 다음 QA 테스트가 릴리즈 브랜치를 

기준으로 진행된다. 

 

QA 테스트를 진행하면서 발견한 버그만 수정하고 그 외 기능들은 추가되지 않는다. 

테스트 이후 릴리즈 브랜치가 안정적이라면 master 브랜치에 병합된다. 

 

hotfix

긴급하게 수행되어야 할 버그 수정을 반영하기 위해 생성되는 브랜치이다.

다음 릴리즈 프로세스를 기다릴 수 없는 긴급한 경우에 브랜치를 사용한다. 

 

master 브랜치를 기반으로 생성되며 앞서 말한 것처럼 긴급한 수정이 필요한 경우 

반영된다. 

 

 

반응형

'개발정보' 카테고리의 다른 글

Webpack  (1) 2022.09.27
Babel 끝장보기  (1) 2022.09.25
메모리  (1) 2022.09.17
힙 메모리 단편화  (1) 2022.09.16
Github 동작 원리  (0) 2022.09.14