master 브랜치 : 언제나 실행 가능한 상태를 유지해야 한다
가장 최신 버전은 실행 가능한 상태.
실행 가능한 상태를 만들어가는 과정은 develop 브랜치에서 진행한다
git checkout -b develop
버그와 기능을 개선한 뒤 출시 준비를 하는 release 브랜치
git checkout -b release/0.2
release 브랜치에서 develop 브랜치와 병합하면서 충돌을 방지한다
최종적으로 정상적인 작동을 확인한다면 master 브랜치와 병합 -> merge commit을 남기는 방식으로 병합
git checkout master
git merge --no--ff release/0.2
* --no-ff : fast forward를 하지 않게 함
commit 메시지를 의도적으로 남겨서
release 브랜치와 병합했다는 것을 commit log 상의 기록으로 남기는 것이 git flow의 정책
git tag 0.2 -> 0.2 버전을 출시했다는 태그를 단다
다시 develop 브랜치로 checkout...
feature 브랜치 : 기능을 개발하는 브랜치
길게 가는 기능 : long
짧게 가는 기능 : short
git branch feature/short
git branch feature/long
개발 완료시 develop 브랜치와 병합(merge)
git checkout feature/short
긴급한 수정사항 발생시, 정식 출시 버전에서 버전 하나만 추가하여 다음 버전 출시
-> hotfixes 브랜치 사용
git checkout -b hotfixes/1.1
Git-flow 방식
1. 티켓 처리하기
- 작업 브랜치 생성
- 작업 브랜치에서 소스코드 수정
- 작업 브랜치에서 변경사항 커밋
- 커밋이 여러 개로 나누어져 있다면 squash로 합치기
- 작업 브랜치를 upstream/feature-user에 rebase
- 작업 브랜치를 origin에 push
- Github에서 bfm-100_login_layout 브랜치를 feature-user에 merge하는 Pull Request를 생성
- 같은 feature를 개발하는 동료에게 리뷰 승인을 받은 후 자신의 Pull Request를 merge
2. develop 변경사항을 feature로 가져오기
- feature-user 브랜치에 upstream/develop 브랜치를 merge
- upstream/develop의 변경사항이 merge된 feature-user를 upstream에 push
3. 완료된 기능을 이번 출시 버전에 포함시키기
- develop 브랜치에 upstream/feature-user 브랜치를 merge
- upstream/feature-user 기능이 merge된 fevelop 브랜치를 upstream에 push
4. QA 시작하기
- release-1.0.0 브랜치를 생성
- release-1.0.0 브랜치를 upstream에 push
5. QA 중 버그 수정하기
- release 브랜치에서 버그 티켓에 대한 브랜치를 생성
- 버그를 수정
- 작업 브랜치에 버그 수정 사항을 커밋
- 작업 브랜치를 origin에 push
- Github에서 bfm-101_bug_login_id_max_length 브랜치를 release-1.0.0에 merge 하는 Pull Request를 생성
- 동료에게 리뷰 승인을 받은 후 자신의 Pull Request를 merge
6. 앱 출시
- release 브랜치를 최신 상태로 갱신
- release 브랜치를 develop 브랜치에 merge
- develop 브랜치를 upstream에 push
- release 브랜치를 master 브랜치에 merge
- 1.0.0 태그 추가
- master 브랜치와 1.0.0 태그를 upstream에 push
참고 사이트
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
https://www.youtube.com/watch?v=EzcF6RX8RrQ
'개발일지' 카테고리의 다른 글
인터페이스(Interface)와 추상화(abstract) (0) | 2023.01.05 |
---|---|
코드리뷰와 테스트 (0) | 2023.01.03 |
[코딩애플] 리액트 기초 #1 (0) | 2022.09.20 |
[생활코딩] React #2 (0) | 2022.09.19 |
[생활코딩] React #1 (0) | 2022.09.17 |