Git flow 전략 알아보기
•
Git 을 사용하여 개발하는 환경에서 Branch 간의 문제 없이 배포까지 안정적으로 할 수 있도록 Branch를 관리하는 전략이다.
주요 Branch
•
Main(=Master)
•
Dev
•
Feature
•
Release
•
Hotfix
시나리오 테스트
•
Release Branch 생성 후 추가 작업이 필요해질 경우
•
Release Branch 생성 후 추가 작업이 없는 경우
•
Hotfix가 나가야 할 경우
정기배포를 위한 GitFlow 전략
•
Login 기능 개발
•
Logout 기능 개발
•
다음과 같은 구조로 Branch 생성 후 Feature 작업 진행
•
Feature 개발 완료 후 배포를 하기 위해 Release Branch를 생성
Release Branch 생성 후 추가 작업이 필요해질 경우
•
Release Branch를 기준으로 추가 작업을 위한 Branch를 생성
•
추가 작업이 끝나면
◦
Release Branch에 Merge 후
◦
Release Branch를 Master Branch에 Merge
•
Master에 추가된 작업 내용을 Dev Branch에, Master Branch를 Merge 하여 Master와 Dev의 Sync를 맞춤
•
Sync를 맞추는 이유
◦
Dev는 Master를 Base로 생성된 Branch이다.
◦
Dev = Master + @의 코드를 갖고 있어야 한다.
◦
만약 Sync가 안 맞을 경우 Dev ≠ Master + @가 된다.
◦
이런 상태로 누군가 Dev에서 신규 Branch를 생성하게 되면 코드가 꼬이게 된다.
Release Branch 생성 후 추가 작업이 없는 경우
•
Release Branch를 Master Branch에 Merge 한다.
•
Dev Branch에 Master Branch를 Merge 하여 Master와 Dev의 Sync를 맞춘다.
Hotfix가 나가야 하는 상황인 경우
•
다음과 같은 상황에 운영에서 장애가 발생하여 Hotfix로 이슈를 수정하여 배포가 나가야 한다.
•
Master Branch를 기준으로 Hotfix Branch를 생성한다.
•
Hotfix Branch에 수정 작업을 진행한다.
•
Hotfix 작업이 끝나면 Master Branch에 Merge 한다.
•
Dev Branch에 Master Branch를 Merge 하여 Master와 Dev의 Sync를 맞춘다.
•
이후 신규 작업은 Dev Branch Base로 새로운 Feature Branch를 생성한다.
•
Hotfix 이후 왜 Master와 Dev 간 Sync를 맞춰야 하나?
◦
Master를 Dev에 Merge 하지 않고 Dev에서 Feature Branch를 생성하게 되면 최신 코드가 아닌 상태로 개발이 진행된다.