[Git flow] Git flow 전략
Updated:
👩🏻💻 Git flow 개념에 대해 알아봅니다.
Git flow 전략
Git을 사용하여 개발하는 환경에서 Branch 간의 문제 없이 배포까지 안정적으로 할 수 있도록 Branch를 관리하는 전략이다. 협업을 하여 개발하므로 복잡한 상황에서 Git이 꼬이지 않고, 안정적으로 운영에 나가야 할 코드만 배포시키는 것이 중요하다. Git flow 전략을 사용하면 안정적으로 배포까지 진행할 수 있게 된다.
주요 branch
Git flow에서 사용하는 주요 branch에는 Main(=Master), Dev, Feature, Release, Hotfix가 있다.
Main branch는 실제 운영 환경에 나가있는 코드만 있는 branch이다. 그만큼 조심스럽게 다루어야 하고 안정적인 코드만 들어가 있어야 한다. Dev branch는 main branch를 베이스로 생성한 branch이다.
다음 배포에 나갈 feature들을 바로 Main branch에 merge 할 순 없으니 그 대신 Dev branch를 사용한다.
Feature branch는 어떤 feature를 개발할 때 branch를 새로 따서 작업 내용을 commit하는 용도이다. commit 작업이 다 끝나면 Dev branch에 merge하게 된다.
모든 과정이 끝나고 진짜 운영에 반영해야 할 시점이 왔을 때 Dev branch를 베이스로 Release branch를 생성하게 된다. 굳이 Release branch가 필요한 이유는 뭘까? 다음 배포에 나갈 코드를 스냅샷을 뜨는 느낌으로 Dev branch에서 Release branch를 생성하게 된다. Release branch가 생성된 시점부터는 더이상 Dev branch에 작업을 하지 않고, 무조건 Release branch에 작업을 추가해야 한다. Release branch로 실제 서버 배포를 하고 QA나 개발 테스트를 마무리지었을 때 Release branch를 Main branch에 merge를 하게 되고 Main branch를 운영에 배포하게 된다.
Hotfix branch는 의도치 않은 장애 상황이 벌어져 빨리 배포해야할 때 쓰인다. main branch에서 바로 Hotfix branch를 생성하고 당장 수정해야하는 최소한의 부분만 수정해서 commit한 다음 Main branch에 다시 merge한 후 운영에 배포한다.