[git] git flow

Jay·2020년 3월 29일
0
post-custom-banner

git flow란 작업물을 효율적으로 산출하기 위한 git process다.

git flow는 크게 다섯개의 브랜치로 나뉜다.

  • master : 현재 배포되고 있는 서비스 코드.

  • develop : 개발용 브랜치. 개발용 브랜치가 따로 존재하는 이유는 배포 때문에 개발 커밋이 멈추지 않게 하기 위해서다. 서비스의 다음 버전을 개발하고 있다.

  • feature : develop브랜치에서 새로운 기능을 개발할 경우 develop에서 feature 브랜치를 생성해 개발한다. 기능별로 feature브랜치가 존재한다.

  • release : 배포용 브랜치. 마스터 브랜치와 차이점은 release는 배포 직전의 테스트용이고, master는 실제로 배포코드가 올라가 있다. 마지막 배포 전에 테스트를 하지 않은 상태이며 여기서 버그가 발견되면 지속적으로 수정한다. 그리고 배포할 상태가 되면 master 브랜치와 develop브랜치에 merge한다.

  • hotfix : 실제 배포되어 master브랜치에 올라가 있는 코드에서 버그가 발견돼 급하게 수정할 때 사용하는 브랜치다. 배포된 코드에서 나온 버그이기 때문에 master 브랜치에서 브랜치를 만들어야 하고 수정한 다음에 master와 develop 브랜치에 merge 한다. 코드 수정이 끝나면 hotfix브랜치는 존재 이유가 없기 때문에 브랜치를 삭제한다.

git flow를 이해하기에 좋은 그림이다. 모든 브랜치는 master에서 시작되고, 개발이 시작되면 master -> develop -> feature 순으로 이동하고, 개발이 완료되면 feature-> develop-> release -> master 순으로 이동함을 알 수 있다. hotfix는 상용서비스를 급하게 수정해야할 때 사용하는 브랜치라 master와 develop하고만 연결 된다.

프로젝트만 진행해보고 실제 상용서비스를 개발해 보지 않았기 때문에 hotfix브랜치는 사용해본 적이 없다. 프로젝트 하는 동안은 feature브랜치와 master브랜치(git flow를 따른다면 develop branch같은 역할)만 사용하곤 했다. 실제 서비스로 발전하면서 배포 라는 과정이 추가되면서 역할상 세 종류의 브랜치가 추가된 것이다.(hotfix, release, master)

profile
You're not a computer, you're a tiny stone in a beautiful mosaic
post-custom-banner

0개의 댓글