본문 바로가기

개발일지

Git-flow

 

 

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

 

4, 5번 작업을 수행하지 않는 경우

 

4, 5번 작업을 수행한 경우

 

 

 

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