거북목개발자
Git Flow 전략 및 branch 설명 (branch naming convetion) 본문
Branch 종류 및 설명
Git Flow
항상 유지되는 메인 브랜치 : main(master), develop
일정 기간 동안만 유지되는 보조 브랜치 : feature, release, hotfix
- main(master) : 제품으로 출시될 수 있는 브랜치
- develop : 다음 출시 버전을 개발하는 브랜치
- hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치
- release : 이번 출시 버전을 준비하는 브랜치
- feature : 기능을 개발하는 브랜치
1. 처음에는 main(master) 브랜치가 존재한다.
2. main(master) 브랜치에서 develop 브랜치를 생성한다.
3. develop 브랜치에서는 상시로 버그를 수정한 커밋들이 추가된다.
따라서 새로운 기능 추가 작업이 있는 경우 develop 브랜치에서 feature 브랜치를 생성한다.
(feature 브랜치는 언제나 develop 브랜치에서 생성하게 된다.)
4. 기능 추가 작업이 완료되었다면 feature 브랜치는 develop 브랜치로 merge한다.
(fork repository의 작업 브랜치들은 Pull Request를 요청 후 merge와 함께 삭제하는 것이 좋다)
5. develop 브랜치에 이번 버전에 포함되는 모등 기능이 merge 되었다면
QA를 하기 위해 devleop 브랜치에서 release 브랜치를 생성한다.
(QA : Quality Assurance의 약자로 소프트웨어 품질 개선 업무를 뜻한다.)
6. QA를 진행하면서 발생한 버그들은 release 브랜치에 수정된다.
7. QA를 무사히 통과한 경우 release 브랜치를 main(master) 와 develop 브랜치로 merge한다.
8. 마지막으로 출시된 main(master) 브랜치에서 버전 태그를 추가한다.
hotfix 브랜치의 경우 feature > develop > main(master)의 병합순이 아니라 main(master)에서 급하게 수정해야하는 경우에 사용한다. main(master)에서 직접 branch를 분기하여 생성하며 수정 후 develop가 아닌 main(master)에 병합하여 배포한다.
Branch naming convention
main(master), develop 브랜치
- 이름 변경 x
feature 브랜치
- [feature/기능요약] ex) feature/login
- [feature/issue_number] ex) feature/#12 : issue_number의 경우 아래 사진과 같이 #뒤에 붙은 숫자를 사용한다.
release 브랜치
- release-RB_* 또는 release-* 또는 release/* 처럼 이름 짓는 것이 일반적인 관례
- [release-* ] ex) release-1.2
hotfix 브랜치
- [hotfix-* ] ex) hotfix-1.2.1
<참고 문서>
https://techblog.woowahan.com/2553/
우린 Git-flow를 사용하고 있어요 | 우아한형제들 기술블로그
{{item.name}} 안녕하세요. 우아한형제들 배민프론트개발팀에서 안드로이드 앱 개발을 하고 있는 나동호입니다. 오늘은 저희 안드로이드 파트에서 사용하고 있는 Git 브랜치 전략을 소개하려고 합
techblog.woowahan.com
https://gmlwjd9405.github.io/2018/05/11/types-of-git-branch.html
[GitHub] Git 브랜치의 종류 및 사용법 (5가지) - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
'Git & Github' 카테고리의 다른 글
효율적인 코드 리뷰를 위한 PR(Pull Request)작성법 (0) | 2022.06.10 |
---|---|
Github Repository 합치기 (0) | 2022.04.25 |
Github Issue 생성 및 작성 방법 (0) | 2022.04.24 |
Commit Message Convention (0) | 2022.04.24 |
.gitignore 적용 안 될때(git ignore 적용 오류) (0) | 2021.11.17 |