Git Flow !

응애 나 프론트애긔👶·2022년 8월 10일
0
post-thumbnail

Git Flow



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로 돌아가서 🔙




Git flow은 크게 5개의 브랜치로 운영하며 관리하고 있다.

  • main

  • develop

  • feature

  • release

  • hotfix


main

main 브랜치는 실제 배포를 위한 브랜치이다.
테스트나 개발을 위해 사용되면 안되니 주의 해야 한다.

develop

develop 브랜치는 개발 브랜치로 개발자들이
이 브랜치를 기준으로 각자 작업한 기능들을 병합하는 곳이다.

feature

단위 기능을 개발하는 브랜치이다.
단위 기능 개발이 끝나면 develop 브랜치에 병합한다.

release

배포하기 전 QA(품질 검사)를 하기 위한 브랜치이다.
이 브랜치에서 QA를 마치고 문제가 발생하면 수정하고
문제가 없다면 main 브랜치로 배포를 한다.

hotfix

main 브랜치에서 발생된 버그를 긴급하게 수정하는 브랜치이다.



Git flow 사용방법📝



우선 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



0개의 댓글