Git에도 전략이 있다? Git Flow란 무엇일까?

"Git 브랜치는 선택이 아닌 필수!"


'Git'은 대표적으로 많이 사용하는 버전관리도구이다. 또 다른 대표 버전관리도구인 'SVN'과의 차이는 브랜치 기능이다.

하지만 첫 회사에서는 신입 개발자들 대부분이었기 때문에 브랜치 사용법을 잘 몰랐고 게다가 프로젝트 기능 구현에 쫓겨 아무도 브랜치를 사용할 생각을 하지 않았다. 그것은 굉장히 큰 실수였다. 브랜치를 사용하지 않으면 일반적으로 'master'(github는 'main') 브랜치 하나만 존재하는데 이렇게 되면 에러가 포함된 코드를 'Commit&Push' 를 하는 경우 'pull'을 받은 동료들 모두 에러를 조치하지 않으면 개발을 할 수 없게 된다. 바쁘면 굉장히 예민해서 서로 얼굴 붉히는 경우가 종종 일어나곤 했다.

이 때문에 'Branch'가 필요하다.

그러나 나는 이직을 하고나서야 브랜치를 사용하게 되었다. 이직 후 맡은 프로젝트에는 브랜치가 버전별로 대략 100여개가 존재했는데 무분별하게 생성하였기 때문인지 아무도 해당 브랜치들의 'history'를 알고 있는 사람이 없었다.

그래서 찾아보게 되었고 깃 브랜치 전략인 'Git Flow'에 대해 학습하게 되었다.

 


"Git Flow란 무엇일까?"


깃 플로우는 Vincent Driessen이 자신의 블로그에 게시하면서 널리 알려지게 되었다. 현재까지도 인기 있는 브랜치 관리 모델 중 하나이다.


Git Flow의 구성요소는 5가지가 있다.

1) Master : 항상 배포 가능한 상태를 유지하기 위한 브랜치
2) Develop: 다양한 기능 개발과 버그 수정 작업이 지속적으로 진행되는 기본 브랜치
3) Feature: 독립적으로 개발하기 위해 목적 단위로 생성하고 삭제하는 브랜치
4) Release: 실제 배포를 준비하여 Develop 브랜치에서 분기하며, 테스트 및 마무리 작업을 진행하기 위한 브랜치
5) Hotfixes: 실제 배포된 제품에서 긴급한 버그 수정을 위한 브랜치


Git Flow 초기 상태는 masterdevelop 브랜치 두 개가 존재한다. develop 브랜치에서 기능별 or 개발자별로 구현 하기위해 feature 브랜치를 생성한다. 구현이 끝나면 finishdevelopmerge하고 feature 브랜치는 생명주기가 다해 사라지게 된다. 버전별 목표 구현이 끝났다면 release 브랜치를 생성하여 testbugfixes를 하고 이상이 없다면 finishdevelopmastermerge 한 후 사라진다. 이후 해당 버전 번호에 맞는 숫자를 tag로 저장한다.

hofixesmaster에서 긴급하게 발견된 버그를 수정하기 위한 브랜치로 수정 후 developmastermerge하고 사라진다.


"마치며"


Git Flow를 사용하면서 각 브랜치별로 Life Cycle이 존재하기 때문에 브랜치가 무분별하게 생성되어 쌓이는 일을 방지할 수 있었다. 또 이 시기에 배포 자동화에 대해 학습하였기 때문에 DevelopStaging 환경에 활용하였고, MasterOperate 환경에 활용하며 Git hooks을 이용해 배포 자동화 환경까지 구축하였다.

현재 나는 솔루션과 연구과제를 병행하는데 연구과제 프로젝트를 진행하면서 Git FlowGit hooks를 활용해 배포 자동화 환경 구축으로 낭비되는 시간을 많이 줄일 수 있었고 실제로 1월 중순까지 해야될 프로젝트를 80% 이상 진행될 수 있었다.



https://jfbta.tistory.com/266

Git에도 전략이 있다? Git Flow란 무엇일까?

초급에서 고급까지

Git에도 전략이 있다? Git Flow란 무엇일까?

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 11월 16일 오전 7:23

댓글 0

    함께 읽은 게시물

    여기는 나름 구력이 있던 곳인디 기존 경영진이 일감빼돌리고 사업 보다는 잿밥에 관심이 많아보이더니 이제는 적자로 전환된지는 수년째. 최대주주 계속 바뀌고 CB에 유증에 2차전지 사업했다 이번에 또 이종산업 진출. 엉망이 되어버린 회사.

    ... 더 보기

    손오공, 최대주주 변경 주식양수도 계약...클라쎄오토 인수 완료

    파이낸셜뉴스

    손오공, 최대주주 변경 주식양수도 계약...클라쎄오토 인수 완료

    조회 331


    린 분석 방법론은 이제 끝인가요?

    페이스북에 Jonas Kim님이 올린 포스팅인데 린 분석 방법론에 대해 다시 한번 생각해보게 됩니다. 저는 린 분석 방법론이 끝물이라는 생각이 들지 않습니다. 현장에서는 이미 트래픽과 매출액이 디커플링되기 시작한 것도 길게보면 7~8년 된 일이고, 성장과 이익을 동시에 균형있게 움직이는 방법을 찾지 못하는 많은 제품과 서비스가 있을 뿐입니다. 지적한 바와 같이 원가, 비용등 재무적인 분석도 대단히 중요한 일이 되어 가는 시점에서 데이터 분석가와 마케터도 이에 맞춰 적응해야 할 시기라고 생각되네요. [... 더 보기

    사용자가 공유한 콘텐츠

    -

    사용자가 공유한 콘텐츠

    대시보드

    

    ... 더 보기

    조회 471



    한때 천만원에 거래되었던 Manus, Bedrock 무료 오픈소스로 공개

    ... 더 보기

    LinkedIn

    lnkd.in

    LinkedIn

     • 

    저장 17 • 조회 1,473


    개발자의 장애 공유 문화

    ... 더 보기

    개발자의 장애 공유 문화

    K리그 프로그래머

    개발자의 장애 공유 문화

     • 

    저장 25 • 조회 4,664