[Git] Git-flow
학습 목표
- git-flow에 대해 간단히 설명할 수 있다.
- git-flow 전략에 대해 설명할 수 있다.
- git-flow 사용법에 대해 설명할 수 있다.
1. 배경
- Git-flow는 Git이 활성화 되기 전, 2010년에 Vincent Driessen이라는 사람의 블로그 글에 의해 널리 퍼지기 시작
- 현재는 Git으로 소프트웨어를 개발할때, 표준 모델로 자리 잡게 됨.
2. Git-flow branch strategy
- Master : 가장 안정된 버전으로, 제품을 출시될 수 있는 브랜치
- Develop : 다음 출시 버전을 개발하는 브랜치
- Feature : 단위 기능을 개발하는 브랜치(개인)
- Release : 이번 출시 버전을 준비하는 브랜치
- Hotfix : 출시 버전에서 갑작스럽게 발생한 버그를 수정하는 브랜치
3. 순서
- master에서 시작
- 동일한 브랜치를 develop에도 생성.
- 개발을 진행하다 로그인, 회원가입 등의 기능 구현이 필요한 경우에는 feature 브랜치를 각 개발자들이 기능마다 생성
- 개발 완료된 feature 브랜치는 검토를 거쳐서 다시 develop에 Merge
- 모든 기능이 완료되면 develop 브랜치를 release 브랜치로 만들고, QA를 하면서 보완점을 보완하고 버그를 픽스(Feature 브랜치를 통해).
- 모든 기능이 완료되면 이제 release 브랜치를 master 브랜치와 develop 브랜치로 보냄. master에서 버전 추가를 위해 태그를 하나 생성하고 배포
- 배포 후에 미처 발견하지 못한 버그가 있을 경우, hotfix브랜치를 만들어 긴급 수정후 태그를 생성하고 바로 수정 배포를 함.
4. 사용법
명령어 | 기능 |
---|---|
git flow init | 초기 설정 |
git checkout [branch_name] | 현재 브랜치 변경 |
git branch | 로컬저장소의 branch 확인(-r : 실제 원격저장소, -d : 삭제 ) |
git tag | 저장소 tag(버전)리스트 확인 |
git flow hotfix start [Version] | 새로운 핫픽스 브랜치 생성 |
git flow hotfix finish [Version] | 핫픽스를 master, develop로 적용(merge) |
git stash -u | 작업 중인 내용을 임시 공간에 보관(충돌 방지용) |
git stash pop | 보관한 작업내용 다시 불러오기 |