참고: 우아한 형제들 기술 블로그 - 우린 Git-flow를 사용하고 있어요 / 누구나 쉽게할 수 있는 git입문
Git으로 지금까지 프로젝트를 한 것들을 돌아보면, 마스터 브랜치에서 feature 브랜치를 생성해서 기능을 추가하고 PR > merge 하는 방식으로 진행했다.
나는 tig가 깔끔한걸 너무 좋아해서 rebase에 대해 알게된 이후로는, commit 메시지를 하나에 최대한 자세히 넣고 squash 해서 하나의 commit으로 관리하는 편이다.
실제로 서비스를 운영하고 배포해야 하는 환경에서 Git을 어떻게 활용하는지를 알고 싶어서 찾아보니 Git-flow라는 것이 있었다.
Git-flow에는 5가지 종류의 브랜치가 존재합니다. 항상 유지되는 메인 브랜치들(master, develop)과 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)이 있습니다.
버전 관리에 대해 더 들어가니, 태그라는 기능도 있다는 것을 알게됐다. 태그는 커밋을 참조하기 쉽도록 알기 쉬운 이름을 붙이는 것
이다.
한 번 붙인 태그는 브랜치처럼 위치가 이동하지 않고 고정되어 있다.
Git 에서는 일반적으로 이름 정보만을 갖는 '태그(Lightweight tag)'와 보다 상세한 정보를 포함하는 '주석 태그(Annotated tag)', 이 두 가지 태그를 사용할 수 있다.
보통 '릴리스 브랜치(Release branch)'에서는 주석 태그를 사용하여 설명이나 서명을 넣은 보다 상세한 정보를 포함하는 태그를 사용하고, 로컬에서 일시적으로 사용하는 '토픽 브랜치(Topic branch)'에서는 이름만 만들어 붙이는 태그를 사용합니다.