개발 공부 ( Git Branch 전략 )
0. Branch란?
- 모든 버전 관리 시스템은 브랜치를 지원한다.
- 개발을 하다 보면 코드를 여러개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 것이 브랜치다.
1. GIT Branch 전략이란?
- 여러 개발자가 하나의 저장소를 사용하는 환경에서 저장소를 효과적으로 활용하기 위한 work-flow다
- 브랜치의 생성, 삭제, 병합 등 git의 유연한 구조를 활용해서, 각 개발자들의 혼란을 최대한 줄이며 다양한 방식으로
소스를 관리하는 역할을 한다.
- 즉, 브랜치 생성에 규칙을 만들어서 협업을 유연하게 하는 방법론을 말한다.
2. Git-Branch 전략의 종류
1) Git - flow 전략
- 5가지 브랜치 ( Master, Release, Develop, Hotfix, Feature )을 이용한 개발 모델
브랜치 | 설명 |
master | 라이브 서버에 제품으로 출시되는 브랜치 |
develop | 다음 출시 버전을 대비하여 개발하는 브랜치 |
feature | 추가 기능 개발 브랜치. develop 브랜치로 merge |
release | 다음 버전 출시를 준비하는 브랜치. develop 브랜치를 release 브랜치로 옮긴 후 QA, 테스트 진행. |
hotfix | master 브랜치에서 발생한 버그를 수정하는 브랜 |
- 동작원리
- master 브랜치에서 develop 브랜치를 분기
- 개발자들은 develop 브랜치를 기반으로 개발을 진행
- 기능 구현의 경우 develop 브랜치에서 feature (기능) 브랜치 분기
- 기능 구현된 feature 브랜치는 develop 브랜치에 merge
- 배포를 위한 준비과정으로 develop 브랜치에서 release 브랜치를 거쳐 검증 후 main브랜치 merge
- 배포한 버전에서 긴급하게 수정이 있을 경우 hotfix 브랜치를 생성하여 수정 후 개발중인 브랜치에 적용
2) Github - flow 전략
- 개념
- Git-flow가 Github 에서 사용하기에는 복잡하다고 나온 브랜치 전략
- hoxfix 브랜치나 feature 브랜치 등 구분하지 않음
- 수시로 배포가 일어나며, CI와 배포가 자동화되어있는 프로젝트에 유용
- 동작원리
- 자유롭게 브랜치 생성 (브랜치 하나로 유지되므로 브랜치명으로 의도를 명확하게 제공 )
- 개발 & 커밋 & 푸쉬 ( 커밋메세지를 이용하여 개발 의도 전달 )
- PR ( pull Request ) 생성
- 리뷰 & 토의 ( master 브랜치에 적용 여부를 상세히 리뷰와 토의 진행 필요 )
- 테스트 ( 라이브 서버 또는 테스트 환경에 배포하여 검증 )
- 최종 Merge를 통한 배
3) GitLab - flow 전략
- 복잡한 Git-flow와 너무 간단한 GitHub-flow의 절충안
- 동작원리
- Gitlab에는 Production 브랜치가 있는데, 이는 Gitflow의 Master브랜치역할
- Gitlab flow의 Master브랜치는 Production 브랜치로 병합
- production 브랜치는 오직 배포만을 담당
- pre-production 브랜치는 production 브랜치로 결과를 넘기기 전에 테스트를 수행하는 브랜치
- Production브랜치에서 릴리즈된 코드가 항상 프로젝트의 최신버전 상태를 유지해야할 필요가 없다는 장점
3. 정리
- 다양한 브랜치 전략을 용도에 맞게 사용하는 것이 중요
ex) 1개월 이상 긴 호흡으로 개발하여 주기적으로 배포, QA 및 테스트, hotfix 등을 수행할 수 있는 여력이 있으면 Git-flow
수시로 릴리즈 되어야 할 필요가 있는 서비스를 지속적으로 테스트하고 배포하는 팀은 GitHub-flow
참조 :
Git - 브랜치란 무엇인가
3.1 Git 브랜치 - 브랜치란 무엇인가 모든 버전 관리 시스템은 브랜치를 지원한다. 개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와
git-scm.com
https://techblog.woowahan.com/2553/
우린 Git-flow를 사용하고 있어요 | 우아한형제들 기술블로그
{{item.name}} 안녕하세요. 우아한형제들 배민프론트개발팀에서 안드로이드 앱 개발을 하고 있는 나동호입니다. 오늘은 저희 안드로이드 파트에서 사용하고 있는 Git 브랜치 전략을 소개하려고 합
techblog.woowahan.com
[GIT] 📈 깃 브랜치 전략 정리 - Github Flow / Git Flow
GIT 브랜치 전략 브랜치 전략이란 여러 개발자가 하나의 저장소를 사용하는 환경에서 저장소를 효과적으로 활용하기 위한 work-flow다. 브랜치의 생성, 삭제, 병합 등 git의 유연한 구조를 활용해서,
inpa.tistory.com
https://velog.io/@kw2577/Git-branch-%EC%A0%84%EB%9E%B5
Git branch 전략(Git-Flow, Github-Flow, Gitlab-Flow)
Branch란?브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념입니다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니
velog.io