Git

GitFlow

GitFlow는 소프트웨어 개발 프로젝트에서 Git을 효과적으로 사용하는 방법론 중 하나로, 여러 개발자가 동시에 프로젝트에 참여할 때 매우 유용하다. GitFlow는 개발 프로세스를 체계적으로 관리할 수 있도록 Git 명령어를 활용하여 브랜치와 병합 전략을 명확히 정의하고 있다. 특히, 대규모 프로젝트나 협업이 많은 프로젝트에서 GitFlow의 장점이 더욱 두드러진다.

GitFlow의 브랜치 계층

notion image
 
  • main 브랜치: 사용자에게 배포되는 코드가 포함되어 있으며, 항상 안정적인 상태를 유지해야 한다. 이 브랜치는 최종 제품을 대표하며, 직접 커밋을 하지 않고 주로 다른 브랜치에서 병합을 통해 관리한다.
  • develop 브랜치: main 브랜치의 복사본으로, 최신 개발 상태를 반영한다. 새로운 기능이 개발되고 테스트가 완료되면 develop 브랜치에서 main으로 병합된다.
  • feature 브랜치: 새로운 기능 개발을 위해 develop 브랜치에서 분기된다. 기능 개발이 완료되면 다시 develop 브랜치로 병합한다. 보통 feature/something 형식으로 브랜치를 명명한다.
  • release 브랜치: 새 버전의 출시를 준비하기 위해 develop 브랜치에서 분기한다. 이 브랜치에서는 버그 수정, 문서 작성, 기타 출시 준비 작업을 진행한다. 준비가 완료되면 releasemain으로 병합되고, develop에도 반영한다.
  • hotfix 브랜치: main 브랜치에서 발생한 긴급한 버그를 수정하기 위해 만들어진다. 수정이 완료되면 maindevelop 브랜치 모두에 병합하여 빠르게 문제를 해결하고 반영한다.

GitFlow 사용의 장점

  • 체계적인 개발 프로세스: GitFlow는 개발, 테스트, 출시 과정을 명확히 구분하여 각 단계의 작업을 효율적으로 관리할 수 있다.
  • 안정적인 코드 유지: main 브랜치는 항상 안정적인 상태를 유지하며, 언제든지 신뢰할 수 있는 소프트웨어 버전을 제공할 수 있다.
  • 긴급한 버그 대응: hotfix 브랜치를 통해 긴급하게 발생한 버그에 대해 신속하게 대응하고, 수정 사항을 즉시 maindevelop 브랜치에 반영할 수 있다.
  • 효율적인 팀 협업: 여러 개발자가 동시에 다양한 기능을 개발하면서도 서로의 작업에 영향을 주지 않도록 분리하여 관리할 수 있다.