본문 바로가기

개발

브랜치 관리(Git Flow, GitHub Flow)

Git Flow

Git Flow는 Vincent Driessen이 2010년에 제안한 방법론으로, 복잡한 릴리스 일정이나 멀티 릴리스를 관리해야 하는 대형 프로젝트에 적합합니다. 주요 브랜치는 다음과 같습니다:

  • master: 제품으로 출시될 수 있는 브랜치
  • develop: 다음 릴리스를 위해 개발이 진행되는 브랜치
  • feature: 기능 개발을 위한 브랜치, develop에서 분기
  • release: 릴리스 준비를 위한 브랜치, develop에서 분기하여 QA, 테스트, 문서 작성 등을 수행
  • hotfix: 출시된 제품에서 긴급하게 수정해야 할 버그를 처리하는 브랜치, master에서 분기

장점:

  • 명확한 구조로 인해 대규모 팀에서도 체계적인 개발이 가능
  • 버전 관리와 호환성 유지가 용이

단점:

  • 브랜치 관리가 복잡하고, 작은 프로젝트에는 과도할 수 있음
  • 프로세스가 까다로워 초보자가 이해하기 어려울 수 있음

GitHub Flow

  • master: 항상 배포 가능한 상태를 유지
  • feature branch: 새 기능이나 버그 수정을 위한 브랜치, master에서 분기하여 작업 후 직접 master로 병합

장점:

  • 구조가 간단하여 작은 팀이나 프로젝트에서 쉽게 사용할 수 있음

단점:

  • 복잡한 릴리스와 다중 릴리스를 관리하기에는 불충분할 수 있음

'개발' 카테고리의 다른 글

소스 코드 관리 전략(모노레포 vs 멀티레포)  (0) 2024.05.11
아키텍처(모놀리식 vs. MSA)  (0) 2024.05.11
프로그래밍 패러다임  (0) 2024.05.11
TDD  (0) 2024.05.11
워터폴과 애자일  (0) 2024.05.11