공부를 하다보면 프로젝트를 통해 협업을 경험하는 경우가 있다.
그럴 때마다 git을 통해서 어떻게 협업해 나아갈지, 그리고 배포 이후에 어떻게 관리할지 등 한번쯤 고민해보았을 것이다.
이러한 고민들을 한번에 정리해줄, 우리의 구원자........ ㅋ...
GitFlow에 대해서 오늘 정리해보고자 한다.
GitFlow
GitFlow는 기업에서도 많이 사용하고 있고, 관련해서 문서로 잘 정리가 되어 있으니 한번 읽어보면 좋을 듯 하다.
[우아한 기술블로그] [강남언니 블로그]
보통 GitFlow가 뭐야? 하면, 한번에 설명해주는 이미지가 있다.
얼핏 보기엔 너무 복잡해서, 이해하기 어렵지만, 하나씩 차근차근 살펴보다보면
와-... 이게 git이지,,, 이게 협업이지... 싶을 것이다.ㅋㅋ
GitFlow Branch
1. 메인 브랜치 (기본 = 사라지지 않는 브랜치)
- master : 배포 가능한 브랜치 (production 상태와 일치)
이 브랜치의 HEAD는 항상 production 상태와 일치 합니다.
- develop : 다음 버전 출시를 위해 개발한 브랜치
이 브랜치의 HEAD는 최신 개발 변경 사항을 제공합니다.
릴리즈 할 준비가 되면 모든 변경 사항을 master 브랜치에 병합합니다.
2. 보조 브랜치 (필요에 따라 생성/삭제 하는 브랜치)
: 병렬 개발을 지원하고, 이를 관리하기 위해 있는 브랜치들
: 기능 개발을 하거나 프로덕션 배포를 준비하고, 라이브 프로덕션 문제를 신속하게 수정하는 등 브랜치를 통해 관리합니다.
- feature : 기능을 개발하는 브랜치
* branch off from develop : 분기 시작하는 브랜치는 devlelop을 사용합니다.
* merge back into develop : 개발 완료 후 develop 브랜치로 병합합니다.
git checkout -b feature/{기능 이름 또는 #이슈번호} develop
- release : 배포를 위해 최종 수정을 하는 브랜치
이 브랜치에서는 주로, 버그수정 및 기타 릴리자 지향 작업만 포함되어야 합니다.
* branch off from develop
: 분기 시작하는 브랜치는 devlelop을 사용합니다.
(develop 브랜치가 개발이 새 릴리즈 사항에 대해서 원하는 상태일 때)
* merge back into develop 또는 master
: 개발 완료 후 develop/master 브랜치로 병합합니다.
* release-{버전번호} 와 같이 branch 이름 규칙을 갖습니다.
git checkout -b realease/1.2
- hotfix : 출시 버전(master)에서 빠르게 패치해야 하기 위해 사용하는 브랜치
: relase 브랜치와 유사, 하지만 master 브랜치에서 분기하는 유일한 브랜치
: hotfix 브랜치를 사용 하면, 긴급하게 수정해야 하는 버그에 대해서 다음 릴리즈 주기를 기다리지 않고, 문제 상황에 대해서 대처 할 수 있습니다.
* branch off from master : 분기 시작하는 브랜치는 master을 사용합니다.
* merge back into develop 또는 master
: 개발 완료 후 develop/master 브랜치로 병합합니다.
* hotfix-{버전번호} 와 같이 branch 이름 규칙을 갖습니다.
git checkout -b hotfix/1.2.1 master
Overall flow
1. master branch 기준으로 devlop 생성
2. develop branch 기준으로 feature, release 생성
3. 기능 개발이 완료되면, develop 브랜치에 feature 브랜치 merged
4. 릴리즈 준비가 완료되면, master / devlelop 브랜치에 각각 merged
5. 만약 master 브랜치에 이슈가 생기면, hotfix 브랜치 생성
6. hotfix가 완료되면, master / devlelop 브랜치에 각각 merged
참고.
https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html
https://nvie.com/posts/a-successful-git-branching-model/
'✏️' 카테고리의 다른 글
커밋 메시지 (0) | 2021.08.12 |
---|---|
[github][slack] 슬랙-깃헙 연동하기 (개인, organization) (0) | 2021.08.04 |