Git-Flow

이명제·2022년 11월 18일
0

Git Flow는 Vincent Driessen가 만든 Git Branch 관리 전략입니다.

Git Flow는 기능별로 Git을 관리하기 쉽고, 스크럼 프로세스에서 칸반보드와 같이 사용하기 매우 유용하고 CI/CD와도 통합하기 좋기 때문에 많은 회사들이 사용하고 있습니다.

Branch 전략

GitFlow에서는 소프트웨어의 상태에 따라 브랜치를 분리하는 전략을 가지고 있습니다.

  • feature/{}: 개발자가 특정 기능을 개발할 때 사용하는 브랜치입니다. feature/{칸반티켓이름} 형태로 브랜치를 만든 후, 티켓 기능을 구현합니다. develop: 개발 브랜치입니다. feature 브랜치가 완료되면 develop에 머지됩니다. release: 배포전에 머무는 브랜치입니다. release 브랜치의 코드를 바탕으로 QA팀에서 QA를 수행합니다. master(혹은 main): 실제 서비스로 런칭될 코드가 런칭되는 브랜치입니다. hotfix: 긴급 패치가 필요할때 사용하는 브랜치입니다. hotfix에서 수정된 내용은 develop과 master에 동시에 머지됩니다.

Gitflow 사용시 브랜치 생성은master -> develop -> feature 순서로 생성됩니다. 코드 통합은 역으로feature -> develop -> release -> master 진행이 되게 됩니다.

Git-Flow의 장점

  • 독릭적인 개발 환경Gitflow 사용시 기능(티켓) 단위로 독립적인 Branch를 만들기 떄문에 다른사람의 개발 결과에 영향을 받지 않는 독립적인 개발환경을 만들어줍니다. 이는 최소한의 방해로 개발을 할 수 있게 도와줍니다.쉬운 추적Gitflow의 feature 브랜치는 칸반 보드의 티켓과 연동이 됩니다. 칸반 보드를 보고 어떤 기능이 통합되었는지 확인이 가능하며, 오류 발생시 어떤 기능을 개발하닥 문제가 생겼는지 확인하고 쉽게 UNDO 할 수 있습니다.배포 정책 및 CI/CD 연동Branch 별로 역할이 분리되어있기 때문에 각 Branch의 update에 맞춰 배포 & 테스트를 하기에 용이합니다.

예를 들어

  • feature 브랜치를 업데이트 하면 unittest를 실행
  • develop에 머지리퀘스트 발생시 inteagration test와 slack 메세지 발송
  • develop 브랜치가 업데이터되면 개발 서버 배포 및 interation test 실행,
  • release 브랜치 배포시 relase 서버 배포 및 QA 팀에 메일로 전달
  • master 배포시 실 서버 배포

CI/CD 관련 내용이 궁금하면 이전 포스팅을 확인해주세요

GitFlow 사용 Tip

머지 스트레스 최소화 하기

gitflow 사용시 Merge 스트레스를 최소화 하기 위해서는 develop 브랜치가 업데이트 될때 마다 자신의 feature 브랜치에 develop 브랜치를 머지해줍니다. 이렇게 하면 나중에 자신의 feature 브랜치를 develop에 머지할때 충돌 없이 머지할 수 있습니다.

출처: https://velog.io/@couchcoding/충돌-없는-Git을-위해-Git-Flow에-대해-알아보자

0개의 댓글

관련 채용 정보