Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Git flow는 바로 이 내용을 기반으로 환경을 구성하며 주요 Branch는 다음과 같은 용도를 기반으로 합니다.

 

기본 Branch

 

Image Modified

 

Master : 최종 개발 완료 된 안정된 버전 관리 Branch
Develop : 다음 릴리즈를 위한 개발 중인 최신 Commit

 

 

 

기능 Branch

Feature : 개발하고자 하는 기능을 위한 branch

Image Modified

- develop branch에서부터 가져오며, 다시 develop branch로 머지한다.

- develop branch 이외의 브랜치와는 머지하지 않는다.

- 일반적으로 개발자의 로컬에서만 유지하고 origin 에 푸시하지 않는다.

- develop branch에 머지하면 feature branch는 삭제한다.

 

 

Release : 제품 또는 결과물을 Release하기 위한 브랜치

...

Hotfix : 긴급 버그 픽스를 위한 브랜치

Image Modified

- master 에서 가져오며, master 와 develop branch로 머지한다.

- hotfix-* 형태로 이름을 짓는다.

- release branch와 사용 방법은 동일하지만, 예상치 못한 긴급 버그 수정을 위해 사용한다.

- release 와 마찬가지로, 소스 코드 내 버전 정보를 업데이트 한다.

- 작업이 완료되면, master 에 머지하고 버전을 태그로 남긴다.

- 수정 사항을 develop branch로 머지한다.

      만약, release branch가 이미 존재하면, develop이 아닌 release branch로 머지한다.

- 핫픽스가 종료되면 branch를 삭제한다.

 

 

몇 가지 주의할 점은 다음과 같다.

  - 브랜치를 머지할 때 --no-ff 옵션을 쓴다.

...

이 Git flow는 훌륭한 기반 환경의 표준을 제공하며 많은 장점을 제공하지만 단점도 있는데, 장 단점은 다음과 같습니다.

장점
  •  명령어를 일일이 사용하지 않아도 자동으로 생성 할 수 있어 초기 사용이 편리하다
  •  수 많은 IDE개발 도구와 Git clienct 도구를 통해 바로 적용 및 Plug-In을 통한 사용이 가능하다
  •  많은 사례를 갖고 있어 업무를 적용 할 때 Reference가 다양하다
단점
  •  Branch를 잘 모르고 사용 할 경우 굉장히 복잡하고 어려울 수 있다.
  •  실제 진행 업무에 적용하기에는 애매하거나 보다 더 세분화가 될 필요가 있다
  •  사용하지 않는 Branch를 생성 할 수 있으며 일견 복잡해 보인다