Git flow 란?
깃 플로우 (git-flow) 를 간단하게 설명하자면, 깃에서 제공하는 "브랜치" 기능을 활용한
변경이력 관리전략이라고 설명하겠다.
다양한 브랜치를 이용해서 팀원들간의 협업 시, 마스터 브랜치에 직접적인 변경을 주지 않고도
다른 브랜치에서 안전하고도 도전적으로 작업을 해서 최종적으로 확정이 된 코드를 마스터로 올려보내는 과정을,
이 흐름을 git-flow 라고 한다.
다양한 브랜치 (branch)
다양한 브랜치라고는 해도, 개발자들 사이에서 공식적으로 쓰이는 브랜치가 존재한다.
- master: 제품으로 출시될 수 있는 가장 상위 브랜치
- develop (dev): 다음 출시버전을 개발하거나, 백업용으로 사용되는 브랜치
- feature: 기능개발에 사용되는 브랜치, 다양한 버전으로 가지치기처럼 생성해서 사용한다.
- release: 최신 출시버전을 준비하는 브랜치
- hotfix: 출시버전에서 발생한 버그를 수정하는 브랜치
(뭐, 이런 식으로 정해져 있다지만, 이번에 우리팀에서는 master, dev, feature 정도만 사용할듯 싶다.)
레파지토리의 구성
깃의 레파지토리의 구성은 크게 3부분으로 구성됩니다.
-
Upstream Repository
-
Origin Repository
-
Local Repository
Upstream Repository
- Upstream 레파지토리는 팀원들이 공유하는 저장소로, 최신의 소스코드가 저장되어 있는 원격저장소입니다.
Origin Repository
- Origin 레파지토리는 Upstream 레파지토리를 Fork 한 원격 개인저장소 입니다.
Local Repository
- 내 컴퓨터에 저장되어 있는 개인 저장소입니다.
깃 워크플로우
기본적인 워크플로우의 순서입니다.
- Upstream Repository 를 Fork 한 Origin Repository 를 생성합니다.
- Origin 이 생성되었다면, Clone 을 해서 나의 Local 로 가져옵니다.
- Local 안에서 작업을 마친 후 Origin 에 Push 합니다.
- Push 된 해당 브랜치를 Upstream 으로 PR (Pull Request) 합니다.
- Upstream 에서 PR 되어 온 브랜치를 Merge 합니다.
- Merge 가 되어 최신화 된 Upstream 을 Local 에서 Pull 합니다.
- 3 ~ 6 번이 반복됩니다.
- 최종적으로 완성된 Upstream 을 배포하거나, 마무리 합니다.
깃 워크플로우를 검색하면 가장 많이 보이는 이미지 입니다, 그만큼 워크플로우를 이해하는데 도움이 됩니다.