Git Flow

JIN·2023년 2월 17일
0
post-custom-banner

Git Flow란?

Git Flow는 Git으로 형상관리를 할때 브랜치를 효율적으로 관리하기 위해 사용하는 브랜치 관리 전략(Branch management strategy)입니다.

Git-Flow를 도입한 이유

  우선순위에 따라 나열된 작업 중, 우선순위가 높은 작업부터 선택하여 작업을 진행할 수 있고, 이번 버전에 포함될 필수 작업과 함께 다음에 언젠가는 배포될 작업들을 병렬로 진행할 수 있습니다. 처리하던 작업들이 완료가 되면 가까운 배포주기에 포함시켜 출시할 수 있습니다. 이러한 개발 프로세스를 가장 잘 반영할 수 있는 모델이 Git-Flow 이기 때문입니다. 브랜치 전략은 PR 기반으로 feature → develop → main의 개발 프로세스를 수립하였습니다.

Git-Flow, Github-Flow, Gitlab-Flow 중 Git Flow를 선택한 이유는?

  Github-Flow는 develop branch 없이 바로 main에 merge 되기에 충분한 테스트를 거치더라도 장애가 발생할 수 있는 가능성이 존재했습니다. Gitlab-Flow는 빠른 개발 프로세스를 가지고 갈 수 있지만 여러명이 함께 개발하는 기능 같은 경우 취합하기 어려울 것이라는 판단을 했습니다. Git-Flow는 대규모 프로젝트 관리에 적합한 방식이며 우선순위로 개발해야 할 기능과 언젠가 배포될 작업들을 하나의 배포주기에 포함시켜 출시할 수 있는 브랜치 전략이기에 Git-Flow를 채택했습니다.

Git-Flow

가장 최초로 제안된 Workflow 방식이며, 대규모 프로젝트 관리에 적합한 방식으로 평가받는다.

Github-Flow

github flow의 간단한 배포 이슈를 보완하기 위해 관련 내용을 추가로 덧붙인 flow 방식

Gitlab-Flow

git-flow를 개선하기 위해 나온 하나의 방식

Vincent Driessen의 브랜칭 모델

https://nvie.com/posts/a-successful-git-branching-model/

Vincent Driessen Branching Model 운영방안

브랜치 간단 요약

  • main branch

    • mainstream 브랜치
    • production-ready 상태가 되도록 항상 유지하는 브랜치
  • develop branch

    • 다음 릴리즈를 위해 최신 개발 내용을 담는 브랜치
    • develop branch가 안정화되고 릴리즈 준비가 되었을 때, 모든 변경사항들은 master branch로 merge됨
  • supporting branch

    • 개발팀 안에서 이루어지는 병렬 개발, 릴리즈, 버그를 위한 브랜치
    • 종류
      • feature branch: 새로운 기능을 개발하는데 사용하는 브랜치
      • release branch: 새로운 제품 출시를 위해 준비하는 브랜치
      • hotfix branch: 치명적인 버그 수정을 위해 생성하는 브랜치

개요

구조

profile
배우고 적용하고 개선하기
post-custom-banner

0개의 댓글