[Git] Workflow

廷弼·2022년 10월 30일
0

Git

목록 보기
1/2

VCS

VCS(Version Control System)를 git으로 선택함에 따라 어떤 workflow를 사용할지 선택해야 합니다.
본 포스트에서는 대표적인 3가지(git, github, gitlab) workflow를 설명합니다.


git flow


git-flow 에서는 5개의 브랜치로 나누어져 있습니다.

1. master
사용자들이 제공받는 서비스를 담고있는 브랜치입니다.
태그를 통해 versioning을 합니다.

2. hotfix
서비스를 사용하다가 보면 의도치않은 버그가 발생합니다. hotfix branch 는 master branch에서 발견된 버그를 바로 수정 -> 배포합니다.
해당 브랜치는 mater branch와 develop branch에 각각 병합됩니다.

3. release
개발이 완료된 기능들을 배포하기 위한 브랜치입니다. (QA용도)
develop branch에서 빠져나와 QA가 성공적으로 끝나면 master branch로, 추가개발이 필요한 경우 다시 develop branch로 병합됩니다.

4. develop
다음 출시버전을 개발하는 브랜치입니다.

5. feature
기능 개발을 위한 브랜치입니다.
develop branch에서 빠져나와 기능 개발이 끝나는 경우 다시 develop branch로 병합됩니다.

git flow는 실제 운용이 불편하다는 문제점을 갖고있습니다.


Github flow


github flow는 master branch를 중점으로 운용합니다. 따라서 master branch는 항상 최신이며 stable한 상태여야 합니다.

작업과정은 다음과 같습니다.

1. Feature branch는 master branch에서 생성되며, 해당 브랜치를 병합하기 위해서 무조건 PR(Pull Request)를 통해 코드에 대한 검토를 받도록 합니다.

2. 코드 리뷰 후 문제가 없다면 master branch로 병합됩니다.

3. master branch에 병합되는 경우, 바로 배포하는 것을 권장합니다.(CI 자동화 권장)


Gitlab flow

gitlab flow는 github flow가 너무 간단하여 배포, 릴리즈등의 문제점을 보완하기 위해 나온 전략입니다.
production branch가 존재하여 master branch를 일방적으로 배포하는 형태입니다.

(맞는 비유일지는 모르겠지만, master branch를 QA용으로, Production branch를 운영용으로 생각하면 편할 것 같네요.)


출처

http://blog.hwahae.co.kr/all/tech/tech-tech/9507/
https://velog.io/@pond1029/Git-Workflow

profile
2jeongfeel

0개의 댓글