본문 바로가기

Tools/깃 Git

git-flow란, git-flow 설치

하나의 소스코드로 여러명의 개발자들이 협업을 하게 되면서 필요해진 소스코드의 버전 관리 시스템.

과거 SVN, CVS -> 현재 Git

Git의 장점은 브랜치(Branch) 관리가 가능하다. 소스코드 일부를 수정하기위해 브랜치를 생성해 코드를 작성한 후 원래 소스코드에 수정사항을 쉽게 병합(Merge)할 수 있다.

Vincent Driessen의 "A Successful Branching Model"

  • master
  • feature
  • develop
  • relase
  • hotfix

master

정식 배포되는 안정적인 버전의 소스코드가 관리되는 곳. master브랜치의 HEAD는 소프트웨어 최신 배포판의 소스코드 버전이 들어있다.
master브랜치에는 지난 배포판 버전의 소스코드를 따라가기 위해 태그(tag)들이 추가 되어있으며, 이 태그를 이용해 각 릴리즈 버전의 소스코드를 빠르게 확인할 수 있다.
master브랜치에는 배포해도 될 만큼 안정성이 충분히 검토된 코드들만이 병합되어야 한다.

feature

새로운 기능 개발이나 버그 수정을 위한 일련의 코드 수정이 이뤄지는 브랜치이다. feature브랜치에서 개발자 혼자 작업을 할 수도 있고, 특정 기능 개발을 위한 여러명의 개발자들이 공동으로 작업할 수도 있다.
feature브랜치에서 작업된 내용은 최종적으로 PR(Pull Request)을 거쳐 develop브랜치에 병합된다.

develop

develop브랜치에는 소스코들이 끊임없이 추가된다. 버그들을 수정하기 위한 코드와 새로운 기능을 추가하기 위한 코드, 성능을 개선하기 위한 코드들이 검증이 완료되고 PR요청을 거치게 되면 이 곳으로 병합된다.
개발자는 feature브랜치에서 소스코드 수정을 한 다음 develop브랜치로 PR요청을 한다. 또 다른 리뷰어가 기능들을 검토한 다음 최종적으로 develop브랜치에 병합된다. 새로운 기능을 위한 feature브랜치는 develop브랜치의 HEAD에서 생성된다.

release

git으로 관리되는 소프트웨어는 정기적으로 성능 개선, 기능 추가, 버그 수정을 반영하면서 release된다. relase브랜치는 릴리즈를 위한 목적으로 생성되는 브랜치이다.
release브랜치는 develop브랜치를 기반으로 생성된다. 다음 릴리즈에 포함되어야하는 기능셋과 버그픽스들이 확정된 다음 생성된다. 릴리즈 브랜치가 생성된 다음 QA테스트가 릴리즈 브랜치를 기준으로 진행된다. 이 과정에서 발견된 버그 수정 사항들이 릴리즈 브랜치와 develop브랜치에 적용되며, 그 밖의 메이저 기능들이 중간에 추가되지는 않는다.
테스트 이후 release브랜치의 코드가 안정적이라고 판단되면 master브랜치에 병합되고 릴리즈에 해당하는 태그가 생성된다. 릴리즈 브랜치가 생성된 이후 반영된 수정사항들은 develop브랜치에도 반영된다.

hotfix

앞의 작업들은 PR, QA테스트 등의 작업들이 필요하다. 안정성을 높이기 위한 작업이지만 긴급한 대응에는 적절하지 못할 수 있다. hotfix브랜치는 정기적인 릴리즈 이외에 긴급하게 수행되어야할 버그 수정을 반영하기 위해 생성되는 브랜치이다. 다음 릴리즈 프로세스를 기다릴 수 없을 정도로 긴급한 패치가 바로 반영되어야 하는 경우 이 브랜치를 사용한다.
hotfix브랜치는 master브랜치를 기반으로 생성된다. 생성된 hotfix브랜치에 긴급한 패치들이 반영된다. 이 후 hotfix브랜치는 master브랜치에 병합되고 태그가 생성된다. 마찬가지로 수정사항은 develop브랜치로도 병합되어 긴급 수정 사항이 이후 릴리즈에 반영되도록 한다.

git-flow 설치

git-flow는 Vincent Driessen의 "A successful git branching model"이라는 글에서 제안한 위의 브랜치 모델을 쉽게 사용할 수 있도록 몇 개의 명령으로 구현해 놓은 git의 확장이다. 간단한 명령을 이용해서 Vincent Driessen의 브랜치 모델에서 필요한 브랜칭 동작들을 수행할 수 있다. Git이 설치되어 있어야 한다.

Git 설치

우분투
$ apt-get install git-core

$ brew install git
$ echo "export PATH=/usr/local/bin:&PATH" >> /.bash_profile
맥을 사용하는 경우 옛날 버전의 git을 기본으로 포함하는 경우가 있으므로 새로 설치한 git을 사용하도록 PATH 환경변수를 변경해준다.

Git-Flow 설치

우분투
$ apt-get install git-flow

$ brew install git-flow-avh

 

 

https://hbase.tistory.com/60

'Tools > 깃 Git' 카테고리의 다른 글

git-flow 사용법  (0) 2022.04.04
깃허브 폴더 화살표 클릭 안됨 remote git repository arrow  (0) 2022.03.05
깃 브랜치 Git Branch  (0) 2021.12.16
깃 기초 Git basic  (0) 2021.12.16