티스토리 뷰

https://nvie.com/posts/a-successful-git-branching-model/

 

Git Flow란

Vincent Driessen의 블로그의 글에 의해 Git을 이용한 다양한 여러 개발자와 협업을 하기 위해

Branch전략을 이용한 방법론으로 시작되었다.코드내용

 

Git Flow의 Branch종류

1. Master : 정식 배포되는 안정적인 버전의 소스코드를 관리하며, 배포해도 될 만큼 안정성이 충분히 검증된 소스만이병합되어야 한다.
2. 마스터 브랜치의 HEAD는 소프트웨어의 최신 배포판의 소스코드 버전이 들어있다.
3. 마스터 브랜치에는 지난 배포판 버전의 소스코드를 따라가기 위해 태그(Tag)들이 추가되어야 한다.
4. Develop : 개발 브랜치로 개발자들이 개발브런치 기준으로 각자의 작업한 기능들을 Merge를 하는 브랜치이다.
5. Feature : 새로운 단위 기능을 개발하는 브랜치로 기능의 개발이 완료되면 개발브랜치로 Merge를 한다.
6. Release : 배포를 하기위해 마스터브랜치로 Merge를 하기전에 QA(품질검사)를 하기 위한 브랜치이다.
7. Hotfix : 정기적인 개발이나 수정이 아닌 긴급하게 수행되어야 할 버그 수정을 반영하기 위한 브랜치이다.코드내용

 

메인 브랜치와 보조 브랜치

메인브랜치 : 마스터브랜치와 개발브랜치를 말한다.

마스터브랜치는 배포 가능한 상태만을 관리하는 브랜치를 말하며, 개발브랜치는 다음에 배포할 것을 개발하는 브랜치입니다. 즉 개발브랜치는 통합 브랜치의 역할을 하며, 평소에는 이 브랜치를 기반으로 개발을 진행합니다.


보조브랜치 : 피처브랜치(feature branch) 또는 토픽브랜치(topic branch)를 말한다.

마스터브랜치에서 개발브랜치를 만들었고, 개발브랜치에서 다시 미처브랜치를 나눠 작업을 하고 있는 것을 그림을 통해 알 수 있다.

피처 또는 토픽 브랜치는 기능을 개발하는 브랜치이며, 개발브랜치에는 기존에 잘 작동하는 개발코드가 담겨있으며,

보조 브랜치는 새로 변경될 개발코드를 분리하고 각각 보존하는 역할을 한다.

즉 보조 브랜치는 기능을 다 완성할 때까지 유지하고, 다 완성되면 개발브랜치로 Merge 하고 결과가 좋지 못하면

버리는 방향을 취합니다.

보조 브랜치는 보통 개발자 저장소에만 있는 브랜치고, origin에는 push하지 않습니다.
만약 feature 브랜치를 사용한다면, feature/#이슈번호 와 같은 형태로 브랜치를 관리합니다.

Git Flow 설치

## Ubunt 설치
apt-get install git-core
apt-get install git-flow

## Mac설치
brew install git
brew install git-flow-avh
echo "export PATH=/usr/local/bin:$PATH" >> ~.bash_profile

Windows 설치방법 링크(https://github.com/nvie/gitflow/wiki/Windows)

기타 Linux 설치 방법 링크(https://github.com/nvie/gitflow/wiki/Linux)

 

Git Flow 업무 흐름

1. 마스터 브랜치 생성

2. 동일한 개발브랜치 생성 [개발자들은 개발브랜치에서 개발을 진행]

3. A라는 개발자에 회원가입을 B개발자에게 상품관리라는 기능 구현을 할당 했을때 A개발자와 B개발자는 각각 피처브랜치를 생성하여 A는 회원가입을 B는 상품관리를 개발하고, 완료된 피처브랜치는 검토를 거쳐 다시 개발브랜치에 Merge를 한다.

4. 모든 기능에 대해 개발이 완료가 되면 개발브랜치를 릴리즈브랜치로 만들고 QA(품질검사)를 하여 보완점과 버그픽스를 한다.

5. 릴리즈브랜치의 작업이 완료되면 릴리즈브랜치를 마스터브랜치와 개발브랜치로 Merge를 하고 마스터브랜치에는 버전을 추가하기위해 태그를 생성하고 배포를 하고 릴리즈 브랜치는 삭제를 한다.

6. 배포후 릴리즈브랜치 단계에서 확인 못한 바로 수정이 되어야 하는 버그가 발생시 핫픽스브랜치를 만들고 소스를 수정하여 태그를 생성하고 배포를 한다.

'Project > Git' 카테고리의 다른 글

GIT 마무리  (0) 2020.09.03
GIT 심화편  (0) 2020.09.03
GIT 입문편  (0) 2020.09.03
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함