오늘은 어제의 개인 프로젝트를 뒤로하고 새로운 프로젝트에 대한 준비 과정을 가졌다.

그 중 Git을 통해 협업 시, 어떤 부분들을 주의 해야 하는지, 어떤 식으로 관리 하는 것이 좋을지, 등 여러 사용법에 대해 알 수 있었다.

튜터님과 저장소에 대해 이것저것 수정 하던 중, 저장소 하나를 통으로 날렸지만..

Git FlowPermalink

Git Flow는 브랜치 전략(branching model) 중 하나로, 개발 프로세스를 명확하게 정의하여 협업을 효율적으로 관리할 수 있도록 돕는 Git 브랜치 워크플로우다.

아래 방식은 Vincent Driessen이 제안한 방식으로, 여러 개의 브랜치를 사용하여 개발, 릴리즈, 핫픽스를 구조적으로 관리한다.

img

Git Flow의 주요 브랜치Permalink

Git Flow는 크게 5가지 유형의 브랜치를 사용한다.

브랜치 역할 설명
master 제품 릴리스 최종 제품이 배포되는 안정적인 브랜치
develop 개발 브랜치 최신 개발 작업이 진행되는 기본 브랜치
feature 기능 개발 새로운 기능을 개발하는 브랜치 (develop에서 분기)
release 릴리즈 준비 버그 수정 및 최종 테스트를 거쳐 master로 병합
hotfix 긴급 버그 수정 배포된 제품에서 발생한 심각한 버그를 즉시 수정 (master에서 분기)

Git Flow의 작업 흐름Permalink

develop 브랜치에서 개발 진행Permalink

  • develop 브랜치는 최신 개발 코드가 모이는 중앙 브랜치다.
  • 새로운 기능이 필요하면 feature 브랜치를 생성하여 독립적으로 개발한다.
git checkout develop
git checkout -b feature/new-feature

feature 브랜치에서 기능 개발 후 develop으로 병합Permalink

  • 각 기능은 독립적인 feature 브랜치에서 개발되며, 완료되면 develop에 병합됩니다.
git checkout develop
git merge feature/new-feature
git branch -d feature/new-feature

release 브랜치에서 최종 테스트 및 버그 수정Permalink

  • 특정 버전을 출시하기 전, release 브랜치를 생성하여 테스트를 진행한다.
git checkout develop
git checkout -b release/1.0
  • 이 단계에서 버그 수정만 허용되며, 새로운 기능 추가는 금지다.

release 브랜치를 master에 병합 후 태깅Permalink

  • 테스트가 완료되면 release 브랜치를 master에 병합하고 태그(tag)를 생성한다.
git checkout master
git merge release/1.0
git tag -a 1.0 -m "Release version 1.0"
git checkout develop
git merge release/1.0
git branch -d release/1.0

hotfix 브랜치에서 긴급 수정Permalink

  • 제품 배포 후 심각한 버그가 발생하면 master에서 hotfix 브랜치를 생성하여 즉시 수정한다.
git checkout master
git checkout -b hotfix/1.0.1
  • 수정이 완료되면 masterdevelop에 병합 후 태그를 생성한다.
git checkout master
git merge hotfix/1.0.1
git tag -a 1.0.1 -m "Hotfix version 1.0.1"
git checkout develop
git merge hotfix/1.0.1
git branch -d hotfix/1.0.1

Git Flow의 장단점Permalink

장점Permalink

  • 체계적인 브랜치 관리 → 개발, 테스트, 배포가 명확하게 구분됨
  • 협업에 최적화 → 여러 개발자가 독립적으로 작업할 수 있음
  • 안정적인 코드 유지master는 항상 배포 가능한 상태 유지

단점Permalink

  • 작은 프로젝트에서는 불필요하게 복잡
  • 병합이 많아질수록 충돌 가능성 증가 → 팀원 간의 커뮤니케이션이 필수적

태그: ,

카테고리:

업데이트:

댓글남기기