깃, 깃허브

Git Flow, GitHub Flow, GitLab Flow 에 관하여

광터틀 2024. 1. 29. 01:18

Git, GitHub 에 관하여, 그리고 

Git에서 사용하는 Branch 들에 관하여 알아보았다. 

 

이번에는 이 Branch 들을 사용하는 개발 프로세스인 Git Flow 에 대해서 중점적으로 알아보고, 이에 파생된 GitHub Flow, GitLab Flow 등을 알아보겠다. 

 

 

📌Git Flow 

Vincent Driessen 이 제안한 브랜치 전략으로, 큰 규모의 프로젝트에 적합하고 명확한 구조를 제공한다. 

이 전 장에 기록한 다섯 가지의 브랜치 - 메인 브랜치 (Master, Develop), 보조 브랜치 (Feature, Release, Hotfix) 브랜치들을 바탕으로 구성한다. 

 


 

📌GitHub Flow 

GitHub Flow 는 Git Flow 보다 간소화된 프로세스로, 빠른 개발 사이클을 가진 프로젝트에 적합하다. 

  • master: 안정적인 코드가 저장되는 브랜치로, 여기서부터 새로운 브랜치가 생성됩니다.
  • feature branches: 각 기능이 개발되는 브랜치로, master 브랜치에서 파생되고 완료되면 다시 병합됩니다. Pull Request를 통해 코드 리뷰와 토론이 이루어집니다.
  • deployment: master 브랜치로 병합된 코드는 즉시 배포됩니다.

https://lucamezzalira.com/2014/03/10/git-flow-vs-github-flow/


 

📌GitLab Flow 

GitLab Flow는 Git Flow와 GitHub Flow의 장점을 결합한 유연한 브랜치 전략으로, 다양한 환경에서 코드를 배포하고 관리하는 데 사용됩니다. 

 

  • Master 브랜치 : 안정적인 코드가 저장되는 브랜치로, 여기서부터 새로운 브랜치가 생성됩니다.
  • Feature 브랜치 : 각 기능이 개발되는 브랜치로, master 브랜치에서 파생되고 완료되면 다시 병합됩니다. 기능 구현이 완료되면 master 브랜치로 Pull Request를 날립니다. merge 되면 브랜치는 삭제됩니다. 
  • Production 브랜치 : gitlab flow의 production 브랜치 역할은 git flow의 master 브랜치와 동일합니다. 테스트가 끝난 기능에 대해 배포를 하기 위한 브랜치입니다. 
  • Pre-production 브랜치 : 배포 전에 제품을 테스트 (QA, 품질검사) 하는 브랜치입니다. 테스트가 정상적으로 완료되면, production 과 master 에 각각 PR(Pull Request)을 날립니다. 

https://assets.velcdn.com/@jhchoi94/Git-GitLab-flow

 


📌Git Flow vs GitHub Flow 차이 이해 

Git Flow : 5가지의 Branches 를 이용/운영하는 브랜치 전략 

한달 이상의 긴 호흡으로 개발하여 주기적으로 배포 , QA, hotfix 수행할 수 있는 여력이 있는 팀의 경우 적합

 

Github Flow : master 브랜치와 Pull request를 활용한 단순한 브랜치 전략 

항상 릴리즈되어야 할 필요가 있는 서비스와 지속적으로 테스트하고 배포하는 팀이라면 github-flow와 같은 간단한 workflow가 적합 


 

GitFlow 에 관하여 자세히 설명된 글

우아한 기술블로그 [우린 Git-flow를 사용하고 있어요 by 나동호]

 

 

참고 

https://blckchainetc.tistory.com/entry/git-flow-git-flow-%EC%82%AC%EC%9A%A9%EB%B2%95-feat-%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9

https://wiki.yowu.dev/ko/dev/Git/about-git-github-gitlab-flow 

https://gist.github.com/ihoneymon/a28138ee5309c73e94f9

 

'깃, 깃허브' 카테고리의 다른 글

Git Kraken 활용법  (0) 2024.01.29
브랜치(Branch)란? 다섯 종류의 브랜치  (1) 2024.01.26
깃(Git), 깃허브(GitHub)에 관하여  (0) 2024.01.25