[위클리페이퍼] GIT branch flow 전략

nali kang·2024년 1월 14일
0

위클리페이퍼

목록 보기
5/13
post-thumbnail

GIT branch flow 전략

브랜치 전략이란 여러 개발자가 하나의 저장소를 사용하는 환경에서 저장소를 효과적으로 활용하기 위한 work-flow다. 
브랜치의 생성, 삭제, 병합 등 git의 유연한 구조를 활용해서, 각 개발자들의 혼란을 최대한 줄이며 다양한 방식으로 소스를 관리하는 역할을 한다.
즉, 브랜치 생성에 규칙을 만들어서 협업을 유연하게 하는 방법론을 말한다.

GIT flow 전략의 필요성

규모가 있는 프로젝트를 진행하면 어떠한 상황에 어떤 branch를 이용해서 작업해야 하는지 모르는 경우가 많다. 각 기업마다 전략이 다를 순 있겠지만 git에서 직접 정리한 branch 전략이 있으니 확인해보려 한다.

간단하게 프로젝트상에서 필요한 경우를 찾아보자면

  • 배포 버전의 branch를 나눌 때
  • hotfix 배포가 필요한 경우 branch를 별도 사용할 때
  • 가장 최신의 작업이 진행되고 있는 branch가 필요할 때
  • 새로 작업하기 위한 branch 생성시 기준이 되는 branch가 필요할 때

주로 git-flow 전략을 사용한다.

git-flow

기본적인 가지의 이름은 아래의 5가지로 구분하곤 한다.
feature > develop > release > hotfix > master
위 순서들은 왼쪽으로 갈수록 포괄적인 가지이며 master branch를 병합할 경우 그 왼쪽에 있는 hotfix 등 모든 가지들에 있는 커밋들도 병합하도록 구성하게 된다.
5가지 중, 항시 유지되는 메인 브랜치 master, develop 2가지와 merge 되면 사라지는 보조 브랜치 feature, release, hotfix 3가지로 구성된다.

  1. master : 라이브 서버에 제품으로 출시되는 브랜치.
  2. develop : 다음 출시 버전을 대비하여 개발하는 브랜치.
  3. feature : 추가 기능 개발 브랜치. develop 브랜치에 들어간다.
  4. release : 다음 버전 출시를 준비하는 브랜치. develop 브랜치를 release 브랜치로 옮긴 후 QA, 테스트를 진행하고 master 브랜치로 합친다.
  5. hotfix : master 브랜치에서 발생한 버그를 수정하는 브랜치.

앞에서 적었던 기본 구조 5개 중 가장 많이 사용되는 가지는 master와 develop가 되며 정상적인 프로젝트를 진행하기 위해서는 둘 모두를 운용해야 한다.
나머지 feature, release, hotfix branch는 사용하지 않는다면 지우더라도 오류가 발생하지 않기 때문에 깔끔한 프로젝트 진행을 원한다면 지워뒀다가 해당 가지를 활용해야 할 상황이 왔을 때 만들어줘도 괜찮다.
대부분의 작업은 develop에서 취합한다 생각하면 되며 테스트를 통해 정말 확실하게 더 이상 변동사항이 없다 싶을 때 master로의 병합을 진행하게 된다.
master가 아닌 가지들은 master의 변동사항을 꾸준히 주시해야 한다.

참조

https://inpa.tistory.com/entry/GIT-⚡️-github-flow-git-flow-📈-브랜치-전략#git-flow_브랜치_구조
https://blog.jetbrains.com/space/2023/04/18/space-git-flow/

profile
안녕하세요 강나리입니다.

0개의 댓글

관련 채용 정보