[Git] Git Flow 개념 이해하고 Mac에 설치해보기😊

sorzzzzy·2022년 1월 6일
0

TIL

목록 보기
20/36
post-thumbnail

이번주 금요일부터 본격적으로 Code.presso Java 웹 트랙 체험단 활동이 시작된다!
박수~~~👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻

주차별 상세 커리큘럼을 보니, 2주차에 Git-flow 에 대한 내용을 다루는데, 감도 잡고 미리 예습도 할 겸 포스팅을 해보겠다😜!




Git Flow🤔?

Git-flowGit 이 새롭게 활성화되기 시작하는 10년전 쯤에, Vincent Driessen 이라는 사람의 블로그 글에 의해 널리 퍼지기 시작했고
현재는 Git 으로 개발할 때 거의 표준과 같이 사용되는 방법론이다.

쉽게 생각하자면, Git-flow 는 어떠한 기능이 아니라, 서로간의 약속과 같은 방법론이라 보면 된다.
Git-flow 라는 전략을 사용해 Git 을 더 효율적으로 사용할 수 있는 것이다!

정리하면, 소스 코드 형상/이력 관리를 효율적으로 하고 협업할 때 발생할 수 있는 문제점을 최소화할 수 있는 전략이 Git-flow 이다.



Git Flow 전략💡

이 그림을 보면서 개념을 잡아보자!

이와 같은 흐름으로 소스코드를 관리하자는 의미인데, 이렇게 그림만 봐서는 아직까지 감이 잘 안 잡힐 것이다😂

Vincent Driessen의 브랜칭 모델에는 5가지의 브랜치가 사용된다.

  • master
  • develop
  • feature
  • release
  • hotfix

이제 이 5개의 브랜치 각각에 대해 알아보자!

🤚🏻 masterdevelop 브랜치가 가장 중요한 메인 브랜치이고, 나머지는 필요에 의해 사용하는 브랜치이다.

1️⃣ master branch

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

2️⃣ develop branch

  • develop 브랜치는 말 그대로 개발 브랜치로, 개발자들이 이 브랜치를 기준으로 각자 작업한 기능들을 머지(Merge)하게 된다.
  • 따라서 이 브랜치에는 소스코드들이 끊임없이 추가된다.
  • 버그 수정 코드, 새로운 기능을 위한 코드, 성능 개선 코드 등 이러한 코드들이 검증이 완료되고 PR(Pull Request) 요청을 거치게 되면 이 브랜치로 병합된다.
    +) 개발자는 feature 브랜치에서 소스코드 수정을 한 뒤 develop 브랜치로 PR 요청을 한다.
    +) 새로운 기능을 위한 feature 브랜치는 develop 브랜치의 HEAD에서 생성한다.

3️⃣ feature branch

  • 단위 기능을 개발하는 브랜치로 기능 개발이 완료되면 develop 브랜치로 머지된다.
  • 새로운 기능 개발이나 버그 수정을 위한 일련의 코드 수정 또한 이루어진다.
  • feature 브랜치에서 작업된 내용은 최종적으로 PR을 거쳐 develop 브랜치에 머지된다.

4️⃣ release branch

  • git으로 관리되는 소프트웨어는 정기적으로 성능 개선, 기능 추가, 버그 수정을 반영하면서 릴리즈 된다.
  • release 브랜치는 이 릴리즈를 하기 위한 목적으로 생성되는 브랜치이다.
  • release 브랜치는 develop 브랜치를 기반으로 생성되며, 다음 릴리즈에 포함되어야 하는 기능셋과 버그 픽스들이 확정된 다음 생성된다.
  • 릴리즈 브랜치가 생성된 다음 QA(품질 검사) 테스트가 릴리즈 브랜치를 기준으로 진행된다.
  • 이 과정에서 발견된 버그 수정 사항들이 release 브랜치와 develop 브랜치에 적용되며, 그 밖에 메이저 기능들이 중간에 추가되진 않는다.

5️⃣ hotfix branch

  • hotfix 브랜치는 정기적인 릴리즈 이외에 긴급하게 수행돼야 할 버그 수정을 반영하기 위해 생성되는 브랜치이다.
  • 다음 릴리즈 프로세스를 기다릴 수 없을 정도로 긴급한 패치가 바로 반영되어야 하는 경우 이 브랜치를 사용한다.
    +) hotfix 브랜치는 master 브랜치를 기반으로 생성된다.
    +) 생성된 hotfix 브랜치에 긴급한 패치들이 반영되고 이후 master 브랜치에 병합되고 태그 생성이 된다.
    +) 마찬가지로, 수정 사항은 develop 브랜치로도 병합되어 긴급 수정 사항이 이후 릴리즈에도 반영되게 한다.

📌 참고자료


Git-flow 설치😎

🤚🏻 잠깐! 모든 개발환경은 Mac 기준이다.

Git-flow 를 설치한 이후에는 간단한 명령어르르 이용해, Vincent Driessen의 브랜치 모델에서 필요한 브랜칭 동작들을 수행할 수 있다!

Git-flow 를 설치하기 위해서는 Git 이 먼저 설치되어 있어야 한다.(이미 설치되어 있으므로 패-쓰😉)
Mac의 경우 Homebrew 를 이용해 쉽게 설치할 수 있다!


brew install git-flow-avh 명령어를 이용해 Git-flow 를 설치한다.

.
.
.
설치 완료✌🏻


다음 시간에는 간단한 Git-flow 사용법에 대해 알아보도록 하겠다😎

화이팅~~~....!

profile
Backend Developer

0개의 댓글