Etc/Git
[Git] Branch 활용 작업흐름
_JSP_
2023. 5. 9. 19:02
1. 소규모 프로젝트(Feature Branch Workflow)
(1) 설명
-
기능별 브랜치를 만들어 개발하는 방식
-
master 브랜치의 메인 코드를 중심으로 기능을 개발하고 병합
(2) 개발흐름
-
원격 저장소의 master 브랜치를 clone
-
로컬 저장소에서 master 브랜치를 분기하여 feature 브랜치 생성
-
기능 개발 후 feature 브랜치를 원격 저장소에 push
(git push origin feature/login을 통해 원격 저장소에도 같은 feature branch가 생성) -
프로젝트 관리자는 feature 브랜치의 코드를 점검한 후 master 브랜치에 병합
-
다른 구성원들은 변경된 master 브랜치를 pull하여 동기화(기능 추가 시마다 pull을 진행하는 것보다, 테스트를 진행할 때 혹은 자신의 기능을 push하기 전 pull을 진행한다)
2. 대규모 프로젝트(Gitflow Workflow)
(1) 설명
-
master와 develop 브랜치를 중심으로 개발하는 방식
-
develop 브랜치를 중심으로 기능 개발을 진행하고, 테스트 진행 후 master 브랜치로 배포
(2) 개발흐름
-
원격 저장소의 master 브랜치와 develop 브랜치가 모두 생성되었다고 가정
-
로컬 저장소에서 원격 저장소의 develop 브랜치와 동기화
-
로컬 저장소에서 develop 브랜치를 분기하여 feature 브랜치 생성
-
(Pull Request 이용)기능 개발 후 로컬 저장소의 feature 브랜치를 원격 저장소에 push
-
원격 저장소에서 feature 브랜치의 코드 점검 후 develop 브랜치에 병합
-
모든 기능이 develop 브랜치에 안정적으로 병합되고 테스트가 완료되면 develop 브랜치를 master 브랜치로 병합
-
다시 기능 개발을 하기위해서 구성원들은 develop 브랜치를 pull(동기화)
3. 오픈소스 프로젝트(Forking Workflow)
(1) 설명
-
메인 원격 저장소와 개인 원격 저장소(메인 원격 저장소를 복제(Fork)한 것) 간의 Pull-Request을 통해서 개발하는 방식
-
개인은 개인 원격 저장소를 통해 개발을 진행하고 메인 원격 저장소로 PR을 보내면 프로젝트 관리자의 판단하에 병합
(2) 개발흐름
- 메인 원격 저장소를 Fork하여 개인 원격 저장소를 생성
- 개인 원격 저장소를 로컬 저장소에 clone
- 메인 원격 저장소는 upstream, 개인 원격 저장소는 origin으로 설정
- 로컬 원격 저장소에서 feature 브랜치를 생성하여 기능 개발 진행
- feature 브랜치를 개인 원격 저장소로 push
- 개인 원격 저장소의 feature 브랜치를 메인 원격 저장소의 master로 PR
- 프로젝트 관리자는 판단 하에 병합
- 로컬 저장소의 master 브랜치에서 업데이트된 메인 원격 저장소의 master 브랜치를 pull
- 로컬 저장소의 업데이트된 master 브랜치를 개인 원격 저장소의 master 브랜치에 push