카테고리 없음

[Git 3] Git Branch 관리 전략 - Git flow

이현찬 2025. 1. 2. 20:06
728x90

Git Branch 관리 전략

코딩 애플 깃 협업 방식한번 보시면 재밌습니다.

Git 관리 전략

  • 프로젝트에서 뼈대가 되는 중요 버전을 보관하는 main branch를 두고 새로운 기능이나 새로운 test는 새로운 branch를 생성하는 방식으로 git을 관리하는 것이 일반적이다.
  • 특정한 기준 없이 필요할 때마다 branch를 생성하게 되면 오히려 관리하기 어려워 질 수 있다.

Git flow

  • gitflow는 두 종류의 주요 브랜치와 세 종류의 보조 브랜치를 갖는다.
    • 주요 브랜치는 main과 develop
      • main 브랜치는 배포 관리하는 코드를 관리하는 브랜치
      • develop 브랜치는 개발을 위한 기본 branch로 수정된 코드나 기능이 merge되는 브랜치
    • 보조 브랜치는 feature, hotfix, release
      • feature 브랜치는 새로운 기능 개발을 위해 사용됨. develop 브랜치에서 생성되고 완성된 기능은 develop으로 병합되어 관리함.
      • release branch는 main 브랜치에 병합 전 test 목적으로 생성하는 브랜치. 대규모 프로젝트에서 여러 가지 테스트를 진행하기 위한 목적의 브랜치
      • hotfix는 main branch에서 긴급히 수정이 필요한 상황에서 생성되는 브랜치

workflow

  1. Feature branch의 workflow
# develop branch로 head 이동
git checkout develop 
# 새로운 기능 개발을 위한 브랜치 생성 후 이동
git checkout -b feature/new_function 
# 작업 진행 후 변경점 모두 add(staging)
git add .
# 변경점 commit
git commit -m "commit message, 작업 내용 최대한 상세하게"
# develop branch로 이동
git checkout develop
# 개발한 feature branch의 기능을 develop branch로 merge
    # 충돌 사항 없으면 merge됨
git merge feature/new_function     
# 꺠끗한 이력 관리를 위해 작업이 끝난 branch는 삭제
git branch -d feature/new_function
git push origin --delete feature/new_function
  1. Release branch의 workflow
    # develop branch로 head 이동
    git checkout develop
    # release branch 생성
    git checkout -b release/v1.0
    # develop 브랜치에 작업한 내용에 대한 테스트와 문서작업 등 진행 후 main으로 
    git checkout main
    # release branch를 main에 머지
    git merge release/v1.0
    # develop branch에도 동일하게 merge해 일치시킴
    git checkout develop
    git merge release/v1.0
    # 깨끗한 이력 관리를 위해 작업이 끝난 branch는 삭제 
    git branch -d release/v1.0
    git push origin -d release/v1.0
  1. Hotfix branch의 workflow
    git checkout main
    git checkout -b hotfix/버그명
    # 버그 수정 후
    git add .
    git commit -m "Fix: 긴급 버그 수정 내용 최대한 상세히"
    git checkout main
    git merge hotfix/버그명
    git checkout develop
    git merge hotfix/버그명
    git branch -d hotfix/버그명
    git push origin -d hotfix/버그명