Git Flow

- main : 제품으로 출시될 수 있는 브랜치
- develop : 다음 출시 버전을 개발하는 브랜치
- feature : 기능을 개발하는 브랜치
- release : 이번 출시 버전을 준비하는 브랜치
- hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치
Main, Develop = 항상 유지되어야 하는 Branch
Feature, Release, Hotfix = 작업이 완료된 후 제거 되는 Branch
기능 개발
지원은 오늘 Log-In UI를 개발하는 작업을 진행하려고 합니다.
이 경우에 Branch를 어떻게 생성하고 사용해야 하는지에 대해 알아보겠습니다.
- develop (pull로 최신화) 브랜치로부터 새로운 feature 브랜치를 생성합니다.
- 브랜치 이름은 feature/login_UI으로 생성했습니다.
- 해당 작업을 완료할 때 까지는 해당 브랜치에서 작업을 합니다.
- 기능을 열심히 구현하면서 Commit을 쌓아 나갑니다.
- 기능 구현이 완료가 되었다면 브랜치를 push하고 develop 브랜치로 PR을 날립니다.
- PR에는 관련된 이슈가 연결되도록
Close #(Issue Number)
를 작성합니다.
- 동료에게 Review와 Approve를 받은 후 해당 브랜치를 스스로 Squash Merge 합니다.
- 다시 새로운 할 일을 찾아 1번부터 반복합니다.
배포
기동 1팀이 잠을 줄여가며 작업한 결과 Develop Branch에 배포할만한 Prototype이 완성되었습니다. 이제 배포를 진행해보려고 합니다.
- develop브랜치에서 release Branch를 생성합니다.
- 브랜치 이름은 release-app-1.0.0
- QA를 진행합니다. 여러가지 버그들이 발견됩니다. (버그가있나 없나 자체 테스트)
- release 브랜치로부터 버그 픽스 브랜치를 생성합니다.
- 브랜치 이름은 fix/bug-name
- 버그를 열심히 잡아냈다면 release 브랜치로 PR을 날립니다.
- 동료에게 Review와 Approve를 받은 후 해당 브랜치를 스스로 Squash Merge 합니다.
- 모든 디버깅이 완료되었다면 release 브랜치를 main(CI/CD) 브랜치에 merge 합니다.