Git Flow 전략은 브랜치를 역할별로 나눠서 협업을 원활하게 해주는 브랜치 전략입니다.
주요 브랜치 구성:
develop: 개발 중인 코드feature/: 기능 단위 브랜치release/: 릴리즈 준비 브랜치hotfix/: 긴급 수정main: 배포 완료된 코드
git flow version
git flow init
브랜치 이름을 설정하는 질문이 나오는데, 여기서 Enter를 누르면 기본값으로 설정됩니다 (develop, feature/, release/ 등).
Version tag prefix? []→ 버전을 v1.0.0 형식으로 만들고 싶다면v입력, 아니라면 그냥Enter.
git flow feature start 작업이름
→ 예: git flow feature start 작업이름
자동으로 feature/작업이름 브랜치가 생성되고 해당 브랜치로 이동됩니다.
git add .
git commit -m "로그인 UI 구현"
git flow feature finish 작업이름
이렇게 하면 develop 브랜치로 자동 머지되며, feature 브랜치는 삭제됩니다.
git remote -v
연결이 안되어 있다면
git remote add origin https://github.com/내저장소주소.git
git push origin develop
만약 작업중이라면 git push origin feature/작업이름 으로도 가능
git push origin feature/작업이름 으로도 가능
git branch // 로컬 브랜치
git branch -r // 원격 브랜치
git branch -a // 로컬 + 원격 브랜치 전체
💬 Git Tag란?
v1.0.0, v2.1.3 같은 형식을 사용git flow release start 1.0.0
→ release/1.0.0 브랜치가 생성됩니다. 이곳에서 QA, 문서 정리 등을 마무리합니다.
git flow release finish '1.0.0'
main과 develop에 병합됩니다.v1.0.0이라는 annotated tag가 생성됨release/1.0.0 브랜치는 삭제git push origin main
git push origin develop
git push origin --tags // 태그 push는 별도로 해야 함
git clone --branch v1.1.0 https://github.com/저장소.git
git checkout -b feature/기능이름
→ detached 상태를 벗어나서 작업 가능
git tag -a v1.2.0 -m "v1.2.0 릴리즈"
git push origin v1.2.0
💡 보통은 작업 브랜치를 push한 이후에 태그를 생성합니다.
즉, 커밋된 시점에 스냅샷을 찍는 형태로 버전 기록!
🎯 특정 커밋에 태그 달기
git tag -a v1.2.0 <커밋해시>
🛠️ 실무 흐름 요약 (Git Flow + 태그)
git flow feature start 개발-101
git push origin feature/개발-101 → PR
리뷰 & merge → develop 반영
git flow release start 1.2.0
최종 QA 및 문서 정리
git flow release finish 1.2.0 → develop + main 병합 + 태그 생성
git push origin develop + git push origin main + git push origin --tags