Git Flow

복잡한 프로젝트 관리를 위해 여러브랜치를 사용하는 전략이다.

장점 : 뚜렷한 브랜치 구조는 대규모 팀이나 프로젝트에 적합하고, 버전 관리와 출시가 용이하다.

단점 : 복잡하고 브랜치 관리가 어려울 수 있으며, 작은 프로젝트나 빠른 개발 사이클에는 비효율적일 수 있다.

GItHub Flow

단순화된 방식으로, main 브랜치 하나와 기능 브랜치들로 구성된다. 모든 변경사항은 main 으로 병합되기 전에 리뷰된다.

장점 : 단순하고 이해하기 쉬우며, 지속적인 배포와 통합에 적합하다.

단점 : 매우 크고 복잡한 시스템에서는 충분한 구조를 제공하지 않을 수 있다.

GitLab-flow

위의 두 전략의 장점을 결합하여 환경에 따라 코드를 배포하는 유연한 전략이다.

장점 : 유연하며 다양한 배포 환경에 적응할 수 있다. 코드 관리와 릴리스가 분리되어 있어 안정성을 높일 수 있다.

단점 : 설정과 관리가 복잡할 수 있으며, 전략을 완전히 이해하고 적용하기 위해서는 경험이 필요할 수 있다.

 

요약 및 정리

전략 브랜치 구조 주 사용 사례 장점 단점
Git Flow master, develop, feature, release, hotfix 대규모 프로젝트, 복잡한 릴리스 사이클 체계적인 브랜치 관리 가능 설정 및 관리 복잡성
GitHub Flow main, feature, 지속적인 배포와 통합, 단순 프로젝트 간단하고 빠른 개발사이클에 적합 대규모, 복잡한 시스템 관리에 한계
GitLab master, pre-production, production 다양한 배포 환경, 유연한 워크 플로우 필요 환경별 코드 배포 가능 초기 설정이 복잡하며 유지 관리에 노력이 필요

 

 

참고자료

  1. https://wiki.yowu.dev/ko/dev/Git/about-git-github-gitlab-flow
  2. https://velog.io/@kw2577/Git-branch-%EC%A0%84%EB%9E%B5
  3. https://blog.hwahae.co.kr/all/tech/9507

+ Recent posts