Git-Flow
Git Repository 구성
Repository는 Upstream Remote Repository, Origin Remote Repository, Local Repository 이렇게 세가지로
구성됩니다.
Upstream은개발자들이 공유하는 저장소로 최신 소스코드가 저장되어 있는 원격 저장소입니다.
Origin은 Upstream을 Fork한 원격 개인 저장소 입니다.
Local은 내 컴퓨터에 저장되어 있는 개인 저장소입니다.
위 그림을 보면 Local에서 각자 맡은 일을 하고 작업 브랜치를 Origin으로 push합니다. 그리고 다시 Origin에서
Upstream으로 merge하는 Pull Request를 생성합니다. Pull Request가 발생하면 팀원과 코드리뷰를 거친후 merge합니다. 그리고 다시 작업을 시작하기 전 Upstream을 pull하여 작업을 하면 됩니다.
작업할 때 지켜야할 약속
- 작업을 시작하기전 꼭 Upstream에서 pull을 한다.
- reset명령어는 Local에서만 사용한다.
- 약속한 commit 규칙을 따른다
- 서로 공유하는 브랜치의 커밋 그래프는 함부로 변경하지 않는다.
- 자신의 Pull Request는 스스로 merge 한다.
Git-Flow 개발 흐름
Git-Flow를 사용했을 때 작업을 어떻게 하는지 살펴보기 전에 먼저 5가지 종류의 브랜치를 소개하겠습니다.
항상 유지되는 메인 브랜치들(master, develop)과 일정 기간동안만 유지되는 보조 브랜치들(feature, release, hotfix)이 있습니다.
- master: 제품으로 출시될 수 있는 브랜치
- develop: 다음 출시 버전을 개발하는 브랜치
- feature: 기능을 개발하는 브랜치
- release: 이번 출시 버전을 준비하는 브랜치
- hotfix: 출시 버전에서 발생한 버그를 수정하는 브랜치