Git Flow

전수·2022년 9월 16일

GIT

목록 보기
3/5

Branching Models

- git flow
	- (hotfix) - master - (release) - develop - feature
	- 각 단계가 명확히 구분되며 가장 많이 사용

- github flow
	- master - feature
    - branch model이 단순화
    - CI 의존성이 높음
	- library, framework처럼 일정한 주기를 가지고 출시할 필요가 없는 프로젝트에 사용됨 

- gitlab flow
	- production - pre-production - master - feature
   -deploy, issue에 대한 대응이 가능하도록 보완

이 중 git flow를 사용해보고자 한다.

Git Flow

git flow 전략을 사용하기 전에

- Github에서 New Repository를 생성하고 환경 설정을 한다.

- git bash에서 clone을 하여 로컬 저장소로 작업을 가져온다.

- main branch는 최종적인 결과물을 push하기 위해서만 사용되며 대부분의 작업은 develop branch나 feature branch에서 수행한다.

- 최종 결과물이 main branch로 push되기 전에 release branch에서 버전 생성이 가능하다.

- release name은 v0.1 혹은 v0.0.1과 같은 형태로 맨 앞 0은 베타 버전을 의미하고, 
맨 앞의 숫자의 변화는 두 버전 간의 호환이 불가능함을 나타낸다.

git flow 사용하기

feature branch 생성하여 작업하기
$ git flow init

$ git flow feature start (feat_name)		##feature branch 자동 생성 및 전환

## 작업 수행 및 commit

$ git flow feature finish (feat_name)		##feature branch가 locally deleted 되고 develop branch로 switch
최종 완성본의 버전 출시하기
$ git flow release start (rela_name)

$ git flow release finish (rela_name)

## tag 작성
완성본 push하기
$ git push -u origin develop

## local 저장소에는 develop branch가 존재하지만 remote 저장소에는 존재하지 않기 때문에 같은 branch임을 알려주는 -u 옵션을 사용

$ git switch main

$ git push origin main

$ git push --tag		##release branch에서 작성한 tag도 따로 push 해야 함.

위와 같은 사이클의 진행은 불안정한 프로젝트의 출시를 예방하여 진행방식을 숙지할 필요성이 매우 높다.

0개의 댓글