본문 바로가기

개발(합니다)/방법론

[git] git flow 사용법(+인텔리제이 설정)

반응형

여러명의 개발자들이 협업하면서 소스 코드의 버전 관리 시스템을 사용합니다.

Git Flow는 git을 효율적으로 공통적인 규칙을 가지고 관리하기 위한 브랜치 전략입니다.

간단히 테스트할 수 있는 사이트 : danielkummer.github.io/git-flow-cheatsheet/index.html

가장 널리 알고 있는 git-flow의 설명과 그림 : nvie.com/posts/a-successful-git-branching-model/


1. 브랜치 설명

5가지 브랜치에 역할을 부여하여 운영을 합니다.
remote repository에는 master와, develop 브랜치가 항상유지가 됩니다.
feature, release, hotfix를 원격 저장소에 유지할지는 팀원들과 협의하여 결정합니다.

git flow를 그대로 사용하기 보다는 팀과 상황에 맞게 정책을 정해서 사용하면 됩니다.

1-1. master

배포될 안정적인 버전의 소스 코드를 가지고 HEAD는 최신 배포파늬 소스 코드 버전에 있습니다.
지난 배포 버전이 tag 형태로 관리가 되며 바로 배포해도 될정도의 신뢰와 안전성이 보장된 브랸치입니다.

1-2. develop

새로운 기능과 버그 수정되는 소스 코드를 가지고 
develop 브랜치를 기준으로 생성해서 작업하고 다시 develop 브랜치로 병합합니다.

1-3. feature

develop 브랜치를 기준으로 새로운 기능 개발을 위해 생성되는 브랜치이고 다시 develop 브랜치에 병합합니다.

1-4. release

QA성이 강한 브랜치로 배포 전 검증하는 브랜치입니다.
develop 브랜치를 기준으로 생성되고 develop과 master 브랜치로 병합합니다.
릴리즈 준비 과정에서 발견된 버그 수정사항정도의 패치들만 적용되고 메이저 기능들은 추가하지 않습니다.

1-5. hotfix

정기적인 릴리즈 이외에 긴급하게 조치되어야 하는 버그를 반영하기 위한 브랜치입니다.
master 브랜치를 기준으로 생성되고 다시 master 브랜치로 병합되고 태그를 생성하고 
develop 브랜치로도 병합되어 다음 릴리즈에 반영되도록 합니다. 

1-6. support

버전 호환성에 문제가 생기면 생성하는 브랜치입니다.

2. git-flow 사용법

기본적으로 사용할 수 있는 명령어는 아래와 같습니다.

2-1. init

master와 develop이 생긴걸 확인할 수 있습니다.

git flow init 

2-3. feature

git flow feature start <feature name>
git flow feature finish <feature name>
git flow feature publish <feature name>
git flow feature pull origin <feature name>

start로 생성합니다.

publish로 원격지에 push 합니다.

finish로 브랜치를 develop에 merge하고 브랜치를 삭제합니다.

2-2. release

git flow release start <version>
git flow release publish <version>
git flow release track <version>
git flow release finish <version>
git push --tags

2-3. hotfix

git flow hotfix start <version>
git flow hotfix finish <version>
git push \--tags

3. 인텔리제이 git flow integration 설정

3-1. 플러그인 설치

git flow integration을 찾아서 설치합니다.

3-2. 플러그인 사용

git 메뉴에서 git flow가 추가되어 있습니다.

이제 상황에 맞춰 사용하면 됩니다.

반응형