git flow

sehwanforeal·2019년 11월 24일
0

git flow 는 git을 쓰는 프로세스이다. 자세히 말하자면 브랜칭 모델을 위한 고수준 저장소 작업을 제공하는 git 의 확장이다.

본인의 이전 프로젝트들에서는 브런치란 작업의 기준, 배포의 대상이되는 Master브런치, 실직적인 코딩을하고 검증을 통해 Master에 merge되기 위해 기능단위로 나뉘어지는 feature브런치가 있었다 하지만 git flow에서는 이 브런치들을 좀더 세분화해 프로세스의 정밀성, 안정성, 효율등을 높일수있다.

먼저 git flow를 설치하기위해서는 제대로 동작하는 git이 설치되어있어야한다. (macOS,Linux,Windows)

MacOs

Homebrew

$ brew install git-flow-avh
~~~

MacPorts

~~~
$ port install git-flow-avh
~~~

#### Linux
```
$ apt-get install git-flow
```
### Windows (Cygwin)
```
$ wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow
-
avh/develop/contrib/gitflow-installer.sh install stable | bash
```
git flow에는 총 5가지의 브런치가 있다

### feature
feature브런치는 기존의 역할과 같다. 개인작업을 외부의 영향을 받지않고할수있다. 개발을할때 기능단위로 나뉘어서 쓰인다. 이브런치들은 develop브런치에 merge된다.

### develop

이전의 Master브런치의 역할을 하는 브런치이다. 기능브런치들의 기준이 되는 브런치다. 그러므로 기능을새로 개발할때, 즉 새로운 feature브런치를 생성할때 이 develop브런치에서 생성하면된다. master에서 배포가 이미 진행되어도 계속해서 기능개선과 유지보수가 이루어 지는 브런치이기때문에 가장 긴 브런치라고 할수도있다.

### release
develop브런치에서 버전이 완성이되면, 배포가되는 master브런치에 가기전에 배포가 잘되는지, 합쳐졌을때의 버그는없는지 확인, 테스트가 진행되는 브런치이다. ui테스트, end to end 등의 최종 테스트가 진행된다.

### master
release에서 테스트가 끝나면 드디어 배포가되는 브런치이다. 가장검증이되고, 가장깨끗한 버전이다

### hotfix 
master에서 서비스가 배포되고있고 유저들이 사용중인데 버그가 발견되어서 긴급하게 수정이 진행되어야할때 사용되는 브런치이다 이같은경우는 바로 마스터에서 브런치를생성해 바로 마스터와 develop으로 merge를시킨다
```
디벨롭에서 피쳐까고코딩하고
리베이스스쿼시하고 디벨롭으로
보내고 그리고 릴리즈까고 테스트
, 잘되면 이제 마스터로보내서
마스터를 배포함
나중에 버그가발견되면 
마스터에서 핫픽스를까서
고치고 마스터와 디벨롭으로 머지
머지할때는 항상 리베이스,스콰시

배포중버그가 발견되면 
보통 핫픽스로 고치나,
버그가 너무심각하고 치명적이면 
마스터브런치 전 버전, 
전 커밋으로 돌려보냄
```


profile
@FrontEnd

0개의 댓글