Git 브랜치 전략을 활용하는 이유
단순히 pull하고 commit하고 push&merge를 할 줄 안다고 해서 브랜치를 만들고 합치고 만들고 합치고 단순하게 작업하면 커밋 그래프가 복잡해져서 누가 언제 뭘 했는지 Tracking하기가 힘들기 때문에 그냥 작업하는 것과 별반 다를게 없음.
프로젝트가 커지고, 사람이 많아져도 branch를 나누는 것과 merge를 깔끔하게 하기 위한 전략들이 여럿 존재함.
GitFlow / GitHub Flow / Trunk-based / Gitlab Flow 등등…
이번 포스팅에서는 Git-Flow 브랜치 전략에 대해서 알아보고자 함.
Git-Flow
Git-Flow에는 5가지 종류의 브랜치가 존재함.
항상 유지되는 메인 브랜치 : master(or main), develop
일정 기간 유지되는 보조 브랜치 : feature, release, hotfix
- master : 제품으로 출시될 수 있는 브랜치
- develop : 다음 출시 버전을 개발하는 브랜치
- feature : 기능을 개발하는 브랜치
- release : 이번 출시 버전을 준비하는 브랜치
- hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치
develop 브랜치는 master를 미러링한 브랜치
새로운 기능 추가 작업이 있는 경우에는 develop 브랜치에서 feature 브랜치를 생성.
(feature 브랜치는 항상 develop 브랜치에서부터 시작)
-> 기능 추가 작업이 완료되었따면 develop 브랜치로 merge
develop 브랜치가 어느정도 다음 버전에 출시할 기능들을 갖추었다면 release 브랜치를 생성하여 테스트를 진행
release 브랜치에서 테스트 중 발생한 버그들은 release 브랜치에서 수정
테스트가 성공적으로 끝났다면 master와 develop 브랜치로 merge.
만약 master 브랜치에서 버그가 발생했을 경우에는 master 브랜치에서 hotfix 분기를 따서 버그 수정을 진행.
장점
다양한 브랜치를 통해 여러 시나리오에 유연하게 대처할 수 있음
배포 주기가 다양한 여러 기능들에 대해 능동적으로 배포 가능
단점
다양한 브랜치를 관리함과 동시에 생기는 복잡한 규칙 및 많아지는 동기화 작업
빠른 개발이 필요할 경우 복잡한 규칙 때문에 늦어질 수 있음
References
1. 코딩애플님의 유튜브 영상. (6분짜리 실속만 담은 영상이므로 추천)
https://www.youtube.com/watch?v=EV3FZ3cWBp8
2. 우테코 기술 블로그 (GitHub-Flow --> Git-Flow 전략 변경의 예시)
https://techblog.woowahan.com/2553/
'DevOps. > Git' 카테고리의 다른 글
[Git] 특정 파일 혹은 폴더만 add하기 (1) | 2024.01.31 |
---|---|
[Git] Gerrit을 통한 Commit 단위 코드리뷰 (0) | 2024.01.23 |
[Git] Github-Flow [깃 브랜치 전략] (0) | 2024.01.16 |
[Git] 원격 레포지토리 변경사항 로컬 브랜치로 가져오기 (0) | 2024.01.15 |
[Git] WorkFlow 및 .gitignore (0) | 2024.01.15 |
개발 기술 블로그, Dev
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!