Git Flow는 Vincent Driessen이 제안한 Git을 사용한 효율적인 브랜치 관리 모델입니다. 이 전략은 기능 개발, 릴리스 준비, 유지보수를 위한 별도의 브랜치를 사용하여 개발 프로세스를 체계화합니다.
main
: 안정적인 릴리스 버전을 유지하는 브랜치입니다. 사용자에게 제공될 최종 제품이 위치하는 곳입니다.develop
: 개발을 위한 주요 브랜치로, 개발 중인 최신 코드가 유지됩니다. 기능 브랜치들은 이 브랜치로부터 분기하고, 완료된 기능은 다시 여기로 병합됩니다.feature
: 새로운 기능 개발 또는 버그 수정 작업을 위한 브랜치입니다. feature/
접두사를 사용하여 이름을 지정합니다. 예: feature/new-login
.release
: 새로운 프로덕션 릴리스를 준비하는 브랜치입니다. release/
접두사를 사용합니다. 이 브랜치에서 버그 수정, 문서 작업 등 릴리스 준비 작업을 진행합니다.hotfix
: main
브랜치에 발견된 버그를 긴급하게 수정하기 위한 브랜치입니다. hotfix/
접두사를 사용합니다.새 기능을 개발하기 위해 develop
브랜치로부터 feature
브랜치를 생성합니다.
git checkout develop
git checkout -b feature/new-feature
개발이 완료되면 feature 브랜치를 develop 브랜치로 병합합니다.
git checkout develop
git merge feature/new-feature
릴리스를 준비하기 위해 develop 브랜치로부터 release 브랜치를 생성합니다. 버전 번호를 포함한 브랜치 이름을 사용합니다.
git checkout develop
git checkout -b release/1.0.0
릴리스 준비가 완료되면, release 브랜치를 main과 develop 브랜치로 병합하고, 릴리스 버전에 태그를 붙입니다.
git checkout main
git merge release/1.0.0
git tag -a 1.0.0
git checkout develop
git merge release/1.0.0
main 브랜치에서 발견된 긴급한 버그를 수정하기 위해 hotfix 브랜치를 생성합니다.
git checkout main
git checkout -b hotfix/urgent-fix
버그 수정 후 main과 develop 브랜치로 병합하고, 적절한 태그를 추가합니다.
Git Flow는 복잡한 프로젝트와 릴리스 사이클에 적합한 전략입니다. 프로젝트의 규모나 팀의 작업 방식에 따라 가장 적합한 브랜치 전략을 선택하세요.
모든 변경사항을 적절히 커밋하고, 정기적으로 push하여 작업 내용을 원격 저장소와 동기화하는 습관을 들이세요.