[Git] Git flow 세팅 방법

2024. 11. 22. 14:27데브옵스(DevOps)/Git & Github

git flow 세팅 방법

0. git flow 설치

나는 맥을 사용 중이기 때문에 terminal에서 homebrew를 이용하여 git flow를 설치해주었다.

brew install git-flow

 

설치 확인 명령어

git flow version

 

 

참고) 다른 운영체제에서 Git flow 설치 명령어

Linux에서 Git flow 설치

sudo apt-get install git-flow

 

Windows에서 Git flow 설치

choco install git-flow

1. git flow 초기화

먼저, 프로젝트 디렉토리에서 git flow를 초기화해야 한다.

git flow init

 

 

이 명령어를 실행하면 git flow에 필요한 브랜치 구조가 설정된다.

기본적으로 master와 develop 브랜치가 생성되며, 기타 브랜치들은 git flow의 규칙에 맞게 사용된다.

질문이 몇 가지 나오는데, 기본값을 사용하려면 그냥 enter키를 누르면 된다.

 

참고 사진


2. 브랜치 생성하기

git flow가 초기화되면, 기본적으로 master와 develop 브랜치가 설정된다.

그 후에는 feature, release, hotfix 등의 브랜치를 생성하면서 작업할 수 있다.

 

예시1: 새로운 기능을 개발하기 위한 feature 브랜치 생성

git flow feature start "개발할 기능의 이름"

ex) git flow feature start login-page

 

예시2: feature 브랜치 작업 완료 후, develop에 병합

git flow feature finish "개발할 기능의 이름"

ex) git flow feature finish login-page

 

위 명령어로 작업한 feature 브랜치를 develop 브랜치에 병합하고, 로컬에서 feature 브랜치를 삭제한다.


3. 브랜치 확인하기

git flow를 사용하고 나면, 작업할 브랜치들이 깔끔하게 관리되기 때문에 git branch 명령어로 확인할 수 있다.

git branch

 

참고 사진


4. 원격 저장소에 develop 브랜치 반영

git flow init을 실행하면 develop 브랜치가 로컬에만 생성되므로, 이를 원격 저장소에 푸시해야 한다.

git push -u origin develop

 

이 명령어는 develop 브랜치를 원격 저장소에 푸시하고, 이후에 develop 브랜치에서 작업할 때 자동으로 원격 develop 브랜치와 연동되도록 설정한다.


5. 이후 해야 될 것

5-1. 기능 개발을 위한 feature 브랜치 생성(필요시)

기능을 개발할 준비가 되었다면, develop 브랜치에서 분기해서 feature 브랜치를 만들 수 있다.

 

1. feature 브랜치 생성 (2번의 예시1과 연결)

git flow feature start [feature-name]

 

[feature-name]을 자신이 개발할 기능에 맞는 이름으로 바꿔주면 된다.

예를 들어, 로그인 기능을 개발할 경우 feature/login과 같은 방식으로 이름을 지을 수 있다.

 

2. feature 브랜치 작업 완료 후, develop 브랜치로 병합 (2번의 예시2와 연결)

git flow feature finish [feature-name]

 

작업이 완료되면, feature 브랜치를 develop 브랜치로 병합한다.

 

5-2. 릴리스 준비(필요시)

배포 준비가 되면 release 브랜치를 생성하여 QA와 버그 수정을 할 수 있다.

이 브랜치는 develop에서 분기하며, 배포 준비가 완료되면 main과 develop에 병합한다.

 

1. release 브랜치 생성

git flow release start [version-number]

ex) git flow release start 1.0.0

 

2. release 브랜치 작업 후, 병합

git flow release finish [version-number]

 

이 명령어를 통해 release 브랜치를 main과 develop에 병합하고, 태그를 추가하여 버전을 기록한다.


git flow 명령어 요약

  • git flow 초기화: git flow init
  • feature 브랜치 시작: git flow feature start [feature-name]
  • feature 브랜치 완료 및 병합: git flow feature finish [feature-name]
  • release 브랜치 시작: git flow release start [version]
  • release 브랜치 완료 및 배포 준비: git flow release finish [version]
  • hotfix 브랜치 시작: git flow hotfix start [version]
  • hotfix 브랜치 완료: git flow hotfix finish [version]