깃 플로우 git flow

yeeun lee·2020년 7월 16일
3

참고: 우아한 형제들 기술 블로그 - 우린 Git-flow를 사용하고 있어요 / 누구나 쉽게할 수 있는 git입문

Git으로 지금까지 프로젝트를 한 것들을 돌아보면, 마스터 브랜치에서 feature 브랜치를 생성해서 기능을 추가하고 PR > merge 하는 방식으로 진행했다.

나는 tig가 깔끔한걸 너무 좋아해서 rebase에 대해 알게된 이후로는, commit 메시지를 하나에 최대한 자세히 넣고 squash 해서 하나의 commit으로 관리하는 편이다.

실제로 서비스를 운영하고 배포해야 하는 환경에서 Git을 어떻게 활용하는지를 알고 싶어서 찾아보니 Git-flow라는 것이 있었다.

Git-flow

Git-flow에는 5가지 종류의 브랜치가 존재합니다. 항상 유지되는 메인 브랜치들(master, develop)과 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)이 있습니다.

  • master : 제품으로 출시될 수 있는 브랜치
  • develop : 다음 출시 버전을 개발하는 브랜치
  • feature : 기능을 개발하는 브랜치
  • release : 이번 출시 버전을 준비하는 브랜치
  • hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치

tag

버전 관리에 대해 더 들어가니, 태그라는 기능도 있다는 것을 알게됐다. 태그는 커밋을 참조하기 쉽도록 알기 쉬운 이름을 붙이는 것이다.

한 번 붙인 태그는 브랜치처럼 위치가 이동하지 않고 고정되어 있다.


Git 에서는 일반적으로 이름 정보만을 갖는 '태그(Lightweight tag)'와 보다 상세한 정보를 포함하는 '주석 태그(Annotated tag)', 이 두 가지 태그를 사용할 수 있다.

  • 일반 태그(Lightweight tag): 이름만 붙일 수 있어요
  • 주석 태그(Annotated tag): 이름 / 태그에 대한 설명 / 서명 / 이 태그를 만든 사람의 이름, 이메일과 태그를 만든 날짜 정보

보통 '릴리스 브랜치(Release branch)'에서는 주석 태그를 사용하여 설명이나 서명을 넣은 보다 상세한 정보를 포함하는 태그를 사용하고, 로컬에서 일시적으로 사용하는 '토픽 브랜치(Topic branch)'에서는 이름만 만들어 붙이는 태그를 사용합니다.

profile
이사간 블로그: yenilee.github.io

0개의 댓글