Git은 알겠는데 Git Flow는 대체 무엇인가.
Flow의 사전적 의미는 '흐르다', '이동하다', '진행되다' 정도로 나와있다.
구글에서 Git flow에 관해 검색을 해본 결과
Vincent Driessen이라는 사람이 블로그에 Git flow라는 글을 적어서 널리 퍼지게 되었는데 이는 Git으로 개발 할 때 사용하는 브랜칭 전략 중 하나라고 한다.
여기서 중요한 포인트는 아마 브랜칭 전략이 아닐까 생각된다.
위에서 말한 Git Flow는 브랜칭 전략이라고 말을 했다.
그렇다면 이 Git Flow 말고도 다른 브랜칭 전략이 있다는 것인가 ?
개발자들은 이것을 브랜칭 전략이로 이야기한다.
협업을 할 때 발생하는 이슈들과 버전관리를 위한 branch
들이 관리가 되지 않게 되면 원하는 branch
를 찾기 어렵거나 시간이 많이 소요될 수 있기 때문이다.
이러한 브랜칭 전략은
Git Flow
GitHub Flow
GitLab Flow
이렇게 대표적으로 세 가지가 존재한다.
그 중 우리는 많은 기업에서 표준으로 사용하고 있다는 Git flow에 대해서 알아보도록 한다.
Git flow은 크게 5개의 브랜치로 운영하며 관리하고 있다.
main
develop
feature
release
hotfix
main
main 브랜치는 실제 배포를 위한 브랜치이다.
테스트나 개발을 위해 사용되면 안되니 주의 해야 한다.
develop
develop 브랜치는 개발 브랜치로 개발자들이
이 브랜치를 기준으로 각자 작업한 기능들을 병합하는 곳이다.
feature
단위 기능을 개발하는 브랜치이다.
단위 기능 개발이 끝나면 develop 브랜치에 병합한다.
release
배포하기 전 QA(품질 검사)를 하기 위한 브랜치이다.
이 브랜치에서 QA를 마치고 문제가 발생하면 수정하고
문제가 없다면 main 브랜치로 배포를 한다.
hotfix
main 브랜치에서 발생된 버그를 긴급하게 수정하는 브랜치이다.
우선 Git이 기본적으로 설치 되어야한다.
(git 설치 과정은 생략...)
Git이 설치가 되어있다면 본격적으로 Git flow를 설치해보자.
Git Flow 설치
Window
$ wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash
Mac
$ brew install git-flow-avh
초기화
$ git flow init
기존 git 저장소 내에 초기화하는 작업으로 git-flow의 사용을 시작한다.
feature 시작
$ git flow feature start <브랜치 이름>
develop
브랜치를 기반한 새로운 feature
브랜치를 생성하고 생성된 브랜치로 이동하게 된다.
기능 개발 완료
$ git flow feature finish <브랜치 이름>
기능 개발이 완료 된 feature
브랜치를 develop
브랜치에 병합한다.
내 기능을 게시하기
$ git flow feature publish <브랜치 이름>
내가 만드는 기능을 다른 개발자와 함께 만들 때 공유할 수 있도록 해준다.
게시되어 있는 기능 가져오기
$ git flow feature pull origin <브랜치 이름>
다른 사용자가 게시한 기능을 가져온다.
release 시작
$ git flow release start <버전>
develop
브랜치로부터 release
브랜치를 생성한다.
release 완료
$ git flow release finish <버전>
release
브랜치를 main
브랜치에 병합한다.
commit 시 브랜치에 tag를 넣을 수 있음.
hotfix 시작
$ git flow hotfix start <버전>
main
브랜치를 가져온다.
hotfix 완료
$ git flow hotfix finish <버전>
hotfix
브랜치에서 버그를 해결 후 main
브랜치로 병합한다.
Git에서 브랜칭 전략이라는 것이 있다는 것을 강의 시간에 배운 적이있는데
그 중 강사님이 말씀하시길 프론트엔드는 Git Flow 전략을 주로 사용한다고 말씀하셨다.
Git flow를 활용한 간단한 실습도 해봤지만 짧은 시간 안에 하는 실습이라 배움을 전혀 느끼지 못했다.
이번 기회에 블로깅을 하며 브랜칭 전략의 필요성과 Git flow 사용법을 알았고 다음 팀 프로젝트부터 본격적으로 사용해 볼 생각이다.
인사이트
git-flow cheatsheet
https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html
생활 코딩 Git flow 사용법
https://www.youtube.com/watch?v=w2F8O9J1keM
Git 브랜치 전략 우테코 유튜브
https://www.youtube.com/watch?v=jeaf8OXYO1g