[Git] Git Flow: 협업 프로젝트에서 브랜치 관리하는 방법

2024. 11. 22. 14:06Tool/Git & Github

Git-flow란?

Git Flow는 협업 시 브랜치들을 효율적으로 관리하기 위한 전략 또는 방법론이다.

프로젝트 개발 과정에서 브랜치를 체계적으로 나눠 작업 흐름을 정리할 수 있다.


Git 저장소 개념

  1. 원격 저장소 (Remote Repository)
    • 다른 개발자들과 코드를 공유할 수 있는 저장소이다.
    • Upstream Repository: 팀에서 공유하는 주 저장소로, 최신 소스코드가 여기에 저장된다.
    • Origin Repository: Upstream Repository를 복제(fork)하여 만든 개인용 원격 저장소이다다.
  2. 로컬 저장소 (Local Repository)
    • 내 컴퓨터에 저장된 개인 저장소로, 원격 저장소와 동기화(sync)하여 작업한다.

Git Flow의 브랜치 구조

Git Flow에서는 작업의 역할에 따라 5가지 브랜치를 사용한다.

  1. Main 브랜치 (Master)
    • 목적: 출시 가능한 상태의 코드만 저장
    • 특징: 안정적인 버전의 코드가 기록되며, 버전을 tag로 관리한다.
  2. Develop 브랜치
    • 목적: 다음 출시 버전을 개발
    • 특징: 기능(feature) 브랜치와 버그 수정 작업이 병합된다.
  3. Feature 브랜치
    • 목적: 새로운 기능 개발
    • 특징: develop에서 분기하여 작업하며, 완료 후 다시 develop에 병합된다.
  4. Release 브랜치
    • 목적: 배포 준비 및 QA
    • 특징: develop에서 분기하며, 완료 후 main과 develop에 병합된다.
  5. Hotfix 브랜치
    • 목적: 배포된 코드에서 긴급한 버그 수정
    • 특징: main에서 분기하여 작업하며, 완료 후 main과 develop에 병합된다.

Git Flow 작업 방법

  1. Git 초기 설정
    • 원격 저장소에서 프로젝트를 복제: 
    • git clone [중앙 remote repository URL]
    • 혹은 현재 디렉토리를 Git 저장소로 초기화:
      git init
      git remote add origin [중앙 remote repository URL]
      git fetch origin master
      
  2. Develop 브랜치 생성
    • 팀원 중 한 명이 develop 브랜치를 만들고, 원격 저장소에 업로드합니다:
      git branch develop
      git push -u origin develop
      
  3. Feature 브랜치 작업
    • 새로운 기능 개발을 위해 브랜치를 생성:
      git checkout -b feature/login develop
      
    • 작업 완료 후 develop에 병합:
      git add .
      git commit -m "Add login feature"
      git push origin feature/login
      
  4. Release 브랜치 생성 및 QA
    • QA를 시작하기 위해 release 브랜치 생성:
      git checkout -b release-1.0.0 develop
      git push origin release-1.0.0
      
    • QA 완료 후 master와 develop에 병합:
      git checkout master
      git merge --no-ff release-1.0.0
      git push origin master
      
  5. Hotfix 브랜치 작업
    • 긴급 버그 수정을 위해 hotfix 브랜치 생성:
      git checkout -b hotfix-1.2.1 master
      
    • 작업 완료 후 master와 develop에 병합:
      git checkout master
      git merge --no-ff hotfix-1.2.1
      git push origin master
      

Git Flow 사용 시 주의점

  1. 브랜치 명명 규칙을 팀원들과 미리 정해야 한다.(혼란 방지)
  2. 작업이 끝난 브랜치는 삭제(clean up)하여 관리해야 한다. 
  3. git branch -d feature/login git push origin --delete feature/login
  4. CI/CD 파이프라인과 연계하면 배포 및 테스트가 더 수월해진다.

'Tool > Git & Github' 카테고리의 다른 글

[Git] git flow에서 브랜치 시각화하기  (0) 2024.11.22
[Git] Git flow 세팅 방법  (1) 2024.11.22