카테고리 없음
Git Flow 전략
문자메일
2022. 11. 18. 03:36
주요 Branch
1. Main(=Master) : 실제 운영에 나간 코드만 가지고 있는 안정적인 코드만 들어있어야 하는 브렌치
2. Dev : 다음 배포에 나갈 개발건들 merge
3. Feature :
4. Release : 배포 나갈 코드를 Dev 에서 release 브랜치 생성, 후에 qa 통과하면 main 브렌치에 merge
5. Hotfix : main 브랜치에서 따서 최소한의 수정만 함
개발 필요 기능 예시 : 로그인 기능, 로그아웃 기능
Case 1 : Release branch 생성 후 추가 작업 필요한 경우 (비밀번호 찾는 기능)
순서
- 메인 브렌치에서 dev 브렌치 생성
- dev 브렌치에서 feature 브렌치 생성하여 로그인 기능 구현
- dev 브렌치에서 feature 브렌치 생성하여 로그아웃 기능 구현
- dev 브렌치에 로그인 기능 구현한 feature 브렌치 merge
- dev 브렌치에 로그아웃 기능 구현한 feature 브렌치 merge
- dev 브렌치에서 release 브렌치 생성
- release branch에서 feature 브렌치 생성하여 비밀번호 찾는 기능 구현
- release branch에 비밀번호 찾는 기능 구현한 feature 브렌치 merge
- main branch에 release 브렌치 merge
- main 브렌치 운영 반영
- dev 브렌치에 main 브렌치 merge ( dev = main + @ 상태가 항상 유지되어야 함)
Case 2 : Release branch 생성 후 추가 작업 필요 없는 경우
순서
- 메인 브렌치에서 dev 브렌치 생성
- dev 브렌치에서 feature 브렌치 생성하여 로그인 기능 구현
- dev 브렌치에서 feature 브렌치 생성하여 로그아웃 기능 구현
- dev 브렌치에 로그인 기능 구현한 feature 브렌치 merge
- dev 브렌치에 로그아웃 기능 구현한 feature 브렌치 merge
- dev 브렌치에서 release 브렌치 생성
- main 브렌치에 release 브렌치 merge
- main 브렌치 운영 반영
- dev 브렌치에 main 브렌치 merge ( dev = main + @ 상태가 항상 유지되어야 함)
Case 3 : Hotfix가 필요한 경우
- 메인 브렌치에서 dev 브렌치 생성
- dev 브렌치에서 feature 브렌치 생성하여 로그인 기능 구현
- dev 브렌치에서 feature 브렌치 생성하여 로그아웃 기능 구현
- dev 브렌치에 로그인 기능 구현한 feature 브렌치 merge
- dev 브렌치에 로그아웃 기능 구현한 feature 브렌치 merge
- dev 브렌치에서 release 브렌치 생성
- release branch에서 feature 브렌치 생성하여 비밀번호 찾는 기능 구현
- release branch에 비밀번호 찾는 기능 구현한 feature 브렌치 merge
- main branch에 release 브렌치 merge
- main 브렌치 운영 반영
- main 브렌치에 hotfix 브렌치 생성
- 문제 해결 후 main 브렌치에 hotfix 브렌치 merge
- dev 브렌치에 main 브렌치 conflict 처리 후 merge ( dev = main + @ 상태가 항상 유지되어야 함, 그러나 hotfix가 발생한 상황에서는 dev != main + @ 인 상황 발생)
- 현재 dev 버전과 이전 dev 브렌치 버전으로 생성된 feature 브렌치들의 싱크 맞추기 위하여, 버전 맞추기 위하여 dev 브렌치 내용 pull 받도록 요청해야 함