ougi FE

git-flow와 github-flow란 본문

카테고리 없음

git-flow와 github-flow란

ougi 2025. 4. 26. 01:45
728x90

안녕하세요 오늘은 git flow에 대해서 글을 이렇게 적어보았는데

아직도 우리 학교에서 git flow를 제대로 모르는 학생들이 있는거 같아서 적게 되었습니다


git-flow란?

git-flow는 협업 시 브랜치들을 효율적으로 관리하기 위해서 사용하는 브랜치 관리 전략 또는 방법론이라고 합니다

그러면 git-flow의 장단점에 대해서 알아볼까요?

 

장점

  • 충돌과 혼란을 예방할 수 있습니다
  • 더욱 더 깔끔한 history를 가질 수 있습니다
  • 브랜치의 역할 분담이 명확해서 혼동이 없습니다

단점

  • 브랜치가 너무 많아져서 불편함이 있을 수 있습니다
  • 병합이 많이 해야해서 충돌이 날 가능성이 증가합니다
  • 러닝커브가 높습니다

git-flow 브랜치 분류

git-flow는 5가지로 브랜치를 분류할 수 있습니다 

main과 develop이 주된 브랜치이고 나머지는 필요의 의해서 운영되는 브랜치입니다

  • main(master): 실제로 운영에 반영되어 있는 제품으로 출시될 수 있는 브랜치
  • hotfix: 출시 버전에서 발생한 버그를 수정하는 브랜치
  • release: 이번 출시 버전을 준비하는 브랜치
  • develop: 다음 출시 버전을 개발하는 브랜치
  • feature: 기능 개발을 하는 브랜치

git flow의 과정

  1. main 브랜치에서 develop 브랜치를 분기합니다
  2. 개발자들은 자유롭게 develop 브랜치에서 커밋을 합니다
  3. 기능 구현이 있을 경우 develop 브랜치에서 feature 브랜치를 분기합니다
  4. 배포를 준비하기 위해서 develop 브랜치에서 release 브랜치를 분기합니다
  5. 테스트를 진행하면서 발생하는 버그 수정은 release 브랜치에 직접 반영합니다
  6. 테스트가 완료되면 release 브랜치를 develop 브랜치와 main 브랜치에 merge합니다

github-flow란?

github-flow는 깃허브를 기반으로 한 간단하고 유연한 개발 워크플로우로 주요 목표는 신속한 배포와 효율적인 협업을 지원합니다

git-flow가 복잡하다고 해서 나온 전략입니다

git-flow와 다른 점은 단일 브랜치를 사용하여서 개발한다는 점입니다

수시로 배포가 일어나며 CI와 배포가 자동화되어있는 프로젝트에 유용합니다

main 브랜치는 언제든지 배포가 가능하게 항상 최신 상태여야 합니다

main 브랜치에서 새로운 일을 시작하기 위해서 브랜치를 만드는데 이 브랜치를 topic 브랜치라고 하고 이 브랜치의 이름을 명확하게 해야 한다고 합니다


글을 마치며

오늘은 이렇게 git-flow와 github-flow를 공부해보았는데 충돌 없이 좋은 협업을 할 수 있게 되면 좋을거 같습니다 

github-flow에 대해서는 제대로 알고 있지 않았는데 이번 계기에 꽤 정확히 할게 된 것 같아서 좋았던거 같습니다

그리고 저의 개인적인 생각이지만 굳이 무조건 이 flow 완벽하게 지키지 않고 팀원끼리 협의하여 정해서 하는 것이 제일 좋은 방법이라고 생각합니다

글을 읽어주셔서 감사합니다

728x90