[TIL] git flow 활용법

Jiin Lee·2022년 1월 20일

git flow 활용하기

저번 시간엔 git 전반에 대해 다뤘다면 이번엔 git flow 에 대해서 배웠다.
개인적으로 git flow를 처음 접해보는 터라 낯설고 어려웠다.. 이제 실제로 팀에 들어가 업무를 하면 많이 쓸테니까 미리미리 익숙해져야지!!

git flow 브랜치 모델

gif-flow 활용법에 앞서 git-flow를 적용하는 브랜치 모델에 대해 알 필요가 있다. git의 장점 중 하나가 바로 브랜칭 기능을 적극 사용할 수 있다는 것이다.

git-flow의 브랜칭 모델은 아래와 같다

이 모델은 아래와 같이 총 5가지의 브랜치로 되어 있다. 쉽게 말해 하나의 소스코드를 두고 다섯가지의 가지로 나뉘어 각각 그 가지에서 개발 및 작업을 하게 되는 것이다.

  • master
  • develop
  • feature
  • release
  • hotfix

1. master

master는 실제로 운영에 배포될 소스코드다. 그리고 현재 운영에 반영되어 있는 코드가 가장 최신으로 되어 있을 것이다. 당연히 이 브랜치에서는 바로 작업할 순 없으니 나머지 브랜치들이 필요한 이유이다!

2. develop

이름에서 알수 있듯이 운영에 반영된 코드가 아닌 현재 개발버전의 소스코드들이 있는 곳이다. 그리고 개발을 할 때에도 여러명, 여러 기능을 개발해야하므로 한 브랜치에서 하는 것은 좋지 않다. 그래서 나머지 브랜치들이 필요한 것이고 이러한 브랜치 모델을 적용하는 것이 좋다!

3. feature

개발자들은 이제 feature 브랜치에서 각각 자신들이 맡고 있는 기능 및 부분을 작업하게 된다. 그리고 최종적으로 작업 내용을 develop에 merge한다.

4. release

develop에 있는 개발버전의 코드들이 master 브랜치로 병합되기 전, 이 release 브랜치에서 각종 테스트들을 거치게 된다.

5. hotfix

만약 master에서 배포된 소스에 버그가 생겨 급하게 수정해야할 때 이 hotfix 브랜치에서 수정하게 된다.

이 중 master와 develop이 주된 브랜치 이고 나머지는 개발 작업을 위해 필요에 의한 브랜치 이다.

git-flow 명령어로 브랜치 관리하기

앞서 설명한 브랜치 모델을 git flow를 이용하여 활용할 수 있다. 가장 주되게 사용할 feature와 release 사용법을 정리해보았다.

1. git-flow 초기화

자신의 git 저장소에 git-flow를 초기화 해야한다.

git flow init

)

위와 같이 branch 이름 지정을 물어보는 질문이 나오면 다시 명령어 입력 라인이 나올때까지 엔터를 누른다!

2. feature 브랜치 사용

git flow feature start <feature name>

이제 feature 브랜치를 만들어 개발을 시작할 수 있다.
에는 feature 브랜치의 이름 예를들어 현재 개발하고있는 기능이 로그인이라면 login 이라고 하면 된다.

  git flow feature start login

-> login 기능을 개발하는 feature 브랜치를 시작하겠다는 뜻!

git flow feature finish login 

개발이 끝났다면 이제 해당 feature 브랜치가 끝났다는 명령어를 실행한다. 그럼 이 브랜치가 develop 브랜치로 병합되고 login이라는 브랜치는 삭제된다.

release 브랜치 사용

git flow release start <version>

release 브랜치를 생성하고

git flow release finish <version>

작업을 완료하여 finish한다. 이때
1) release -> master 로 병합
2) release 하는 버전의 태그 생성
3) release -> develop으로 병합
이 과정이 발생한다.
모든 과정이 끝나면 release 브랜치는 삭제된다.

하지만 아직까진! 원격 저장소에는 반영이 되어 있지 않다. release 할 새로운 버전의 tag가 있는 master 브랜치를 원격 저장소에 push 해야한다.

git push --tags 

이렇게 브랜칭 모델과 git flow 활용법을 정리해보았다. 정리하다보니 내가 헷갈렸던 부분을 확실히 알 수 있었다. 아마 실습 할 때엔 또 헤맬수도 있지만....계속해서 익숙해져야지!!

0개의 댓글