Git / Git 브랜치 전략 - git flow, github flow, gitlab flow

최민경·2024년 5월 3일
2

Weekly-paper

목록 보기
5/10
post-thumbnail

Git 브랜치 전략이란?

  • 효율적인 버전 관리를 위한 work-flow
  • 깃 브랜치 전략은 팀 내에서 효율적으로 코드를 관리하고 협업하기 위한 필수적인 요소이다.

Git 브랜치 전략

1. Git Flow

Git Flow는 가장 널리 알려진 브랜치 전략 중 하나로, 명확한 브랜치 구조와 워크플로우를 제공한다.
주요 브랜치는 다음과 같다.

항시 유지되는 메인 브랜치

  • master: 기준이 되는 브랜치
    항상 배포 가능한 상태의 안정적인 코드를 유지

  • develop: 다음 릴리즈를 위한 개발 브랜치로 이 브랜치를 기준으로 작업한 기능들을 merge함

merge 되면 사라지는 보조 브랜치

  • feature: 새로운 기능 개발을 위한 브랜치로, develop 브랜치에서 분기됨

  • release: 릴리즈 준비를 위해 품질관리
    (QA)를 하는 브랜치로, develop 브랜치에서 분기됨

  • hotfix: master 브랜치에서 발생한 버그를 수정하기 위한 브랜치


장점: 명확한 구조와 워크플로우를 제공하여 협업이 용이하다
단점: 복잡한 브랜치 관리로 인해 overhead가 발생할 수 있다.


Git Flow 흐름

  • 대부분의 작업은 develop 브랜치에서 병합
  • 변동사항이 없을 때 master 브랜치로 병합
  1. 신규 기능 개발

    • develop 브랜치로부터 feature 브랜치를 분기 생성
    • 기능을 완성하면 develop 브랜치로 병합
  2. 라이브 서버로 배포

    • feature 브랜치들이 merge되었다면 release 브랜치를 생성
    • release 브랜치에서 오류가 확인될 시 거기서 수정
    • 품질 관리를 마쳤다면, master 브랜치로 merge
  3. 배포 후 관리

    • 라이브 서버로 배포한 후 버그가 발생했을 경우, hotfix 브랜치를 생성하여 버그를 수정한다.
    • 버그 수정을 마친 후, masterdevelop 에 merge

2. GitHub Flow

GitHub Flow는 Git Flow보다 간결한 전략으로, GitHub에 적용하기 위해 자동화를 이용한다.

  • Master 브랜치는 항상 최신 버전을 유지한다
  • 모든 기능 개발은 feature 브랜치에서 이루어진다.
  • pull request를 통해 코드 검토를 하고 master 브랜치에 병합된다.
  • GitHub Flow는 빠른 개발 및 배포에 적합하다.
  • 하지만 master 브랜치의 안정성을 보장하기 위해 철저한 코드 리뷰와 테스트가 필요하다.

3. GitLab Flow

GitLab Flow는 Git Flow와 GitHub Flow의 장점을 결합한 전략으로 Git Flow보다는 간결하고 GitHub Flow의 안정성을 보완한다.


바로 배포하는 Gitlab flow


중간에 pre-production을 두는 Gitlab flow

  • feature : 기능 구현을 시작하는 브랜치. master 브랜치에서 분기되고 머지됨
  • master : Git Flow의 develop 브랜치 역할.
    feature 브랜치에서 병합된 기능에 대해 테스트를 진행함.
    전체적으로 테스트를 완료해서 품질이 보장되었을 때 production 브랜치로 머지
  • production: Git Flow의 master 브랜치와 동일
    테스트가 끝난 기능에 대해 배포를 하기 위한 브랜치
  • pre-production : master에서 production 브랜치로 머지하기 전에 통합 테스트를 진행하는 브랜치

master 브랜치와 develop 브랜치를 사용하며, 환경별 브랜치 (production, pre-production) 를 추가하여 배포 단계를 명확하게 관리한다.
GitLab Flow는 다양한 환경에서의 배포를 효율적으로 관리할 수 있지만, Git Flow와 유사하게 overhead가 발생할 수 있다.

Git 브랜치 전략 선택 기준

  • 팀 규모 및 구조: 소규모 팀에서는 간결한 전략이, 대규모 팀에서는 명확한 구조가 필요할 수 있음
  • 프로젝트 특성: 빠른 개발 및 배포가 중요한 프로젝트에서는 GitHub Flow가 적합할 수 있음
  • 배포 환경: 다양한 환경에서 배포하는 경우 GitLab Flow가 적합할 수 있음

효과적인 브랜치 관리를 위한 TIP

  • 명확한 브랜치 명명 규칙: 브랜치 이름만으로도 목적을 쉽게 파악할 수 있어야 한다.
  • 정기적인 브랜치 정리: 사용하지 않는 브랜치는 삭제하여 관리 오버헤드를 줄인다.
  • 코드 리뷰: 브랜치 병합 전 코드 리뷰를 통해 코드 품질을 유지한다.
    적절한 브랜치 전략을 선택하고 효과적으로 관리하면 팀 내 협업을 개선하고 개발 효율성을 높일 수 있다.




출처

https://inpa.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-github-flow-git-flow-%F0%9F%93%88-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EC%A0%84%EB%9E%B5#git-flow_%EB%B8%8C%EB%9E%9C%EC%B9%98_%EA%B5%AC%EC%A1%B0

https://onwah.tistory.com/12

profile
감자

0개의 댓글

관련 채용 정보