개발/Git 브랜치 전략
Git-flow
재심
2022. 11. 2. 15:19
[Git-flow란?]
Git이 활성화되던 2010년도 정도에 Vincent Driessen이라는 사람이 만든 Git 기반의 브랜치 관리 전략이다.
Git-flow는 완벽한 개발 방법론이 아닌 각자의 개발환경에 맞춰 변형해서 사용하는 것이 좋다고 언급하였다.
[Git-flow 사용 이유]
프로젝트 규모가 작거나 혼자서 개발을 할 경우 master 브랜치에서 그냥 작업해도 된다.
하지만 규모가 커질 경우 누군가는 하루종일 conflict를 해결해야하며, 이슈가 발생했을 때 개발한 코드를 롤백하는 등의 이슈가 있다.
이 같은 문제를 최소화하고 형상 관리를 효율적으로 하기 위해 생겨난 전략 중에 하나라고 생각하면 된다.
[Git-flow Branch 종류]
- master: 제품으로 출시될 수 있는 브랜치
- develop: 개발 브랜치
- feature: 기능 개발 브랜치
- release: 이번 출시 버전 브랜치
- hotfix: 버그 수정 브랜치
예시 : A는 게시판에 필터기능을 추가하고, B는 게시글에 댓글 기능을 추가한다
- dev 브랜치에서 A, B가 각각 feature 브랜치를 생성한다.
- 개발이 완료되면 각자 feature 브랜치에 커밋한다.
- feature 브랜치에서 dev 브랜치로 PR요청한다.
- release 브랜치에서 QA를 진행하기 위해 머지한다.
- QA가 완료되었다면 master, dev에 머지를 진행한다.
예시 : 운영 서버에서 버그가 발생했다 (hotfix)
- master 브랜치에서 바로 hotfix 브랜치를 생성한다.
- 버그 수정 후 master 브랜치에 머지를 진행하고, dev, release에도 머지를 진행한다.
[예시 시나리오]
- dev에서 각자 feature로 브랜치를 생성한다. (featrue/{task번호}-{작업명}-{본인아이디})
- 각자 작업을 진행한다.
- 작업이 완료되면 dev브랜치로 PR을 요청하고 머지한다.
- 각자 작업들이 모두 dev에 머지된다면 릴리즈 브랜치에 머지한다.
- QA를 진행한다.
- QA를 진행하다가 수정사항이 또 발생할 경우 각자 feature 브랜치에 작업한다.
- feature 브랜치에 작업 후 dev 브랜치로 PR을 요청하고 머지한다.
- 릴리즈 브랜치에 머지한다.
- QA가 완료되면 master에 배포한다.
[참조]
https://gist.github.com/ihoneymon/a28138ee5309c73e94f9
git 을 기반으로 git-flow를 사용하여 애플리케이션 배포버전을 관리하자.
git 을 기반으로 git-flow를 사용하여 애플리케이션 배포버전을 관리하자. GitHub Gist: instantly share code, notes, and snippets.
gist.github.com